Как использовать 2 отдельные базы данных, одну для записи и одну для чтения. (две базы данных синхронизированы по шине событий) - PullRequest
1 голос
/ 02 апреля 2019

Я использую модуль @nestjs/cqrs. Как использовать две отдельные базы данных, одну для записи и одну для чтения. (две базы данных синхронизированы по шине событий)

Спасибо

1 Ответ

0 голосов
/ 02 апреля 2019

С помощью typeorm вы можете указать несколько баз данных, указав имена соединений (если вы не укажете имя, будет использоваться соединение по умолчанию):

@Module({
  imports: [
    TypeOrmModule.forRoot({
      ...defaultOptions,
      name: 'WriteConnection',
      host: 'write_db_host',
      entities: [WriteEntity],
    }),
    TypeOrmModule.forRoot({
      ...defaultOptions,
      name: 'readConnection',
      host: 'read_db_host',
      entities: [ReadEntity],
    }),
  ],
})
export class ApplicationModule {}

Затем в своих функциональных модулях вы импортируете объекты, указав имя соединения:

@Module({
  imports: [
    TypeOrmModule.forFeature([ReadEntity], 'readConnection'),
    TypeOrmModule.forFeature([WriteEntity], 'writeConnection'),
  ],
})
export class FeatureModule {}

Для получения дополнительной информации см. документы .

...