TypeORM: исключить семя из подписчика - PullRequest
0 голосов
/ 15 января 2020

Я сейчас работаю с библиотекой TypeORM, и у меня возникли проблемы с семенами и подписчиками. Проблема заключается в том, что каждый раз, когда я запускаю семя для пользователей, мой подписчик срабатывает и записывает новые вставки. Как можно исключить вставки, которые поступают из семени, и только запишите те, которые предварительно сформированы через пользовательский интерфейс приложения

import { EntitySubscriberInterface, EventSubscriber, InsertEvent, UpdateEvent } from 'typeorm';
import { User } from '../users/user.entity';


@EventSubscriber()
export class HistorySubscriber implements EntitySubscriberInterface<User> {
    /**
     * Indicates that this subscriber only listen to User events.
     */
    listenTo() {
        return User;
    }

    /**
     * Called before User insertion.
     */
    // eslint-disable-next-line no-unused-vars
    async afterInsert(event: InsertEvent<User>) {
          // this gets called multiple times even with seed
    }



}

1 Ответ

1 голос
/ 15 января 2020

Для каждой операции базы данных (запроса) можно указать, должны ли вызываться прослушиватели: См. SaveOptions и QueryBuilder . Так что для ваших семян отключите слушателей / подписчиков для каждой операции базы данных.

...