NestJS + MySQL: как подключиться к нескольким базам данных без установки сущностей - PullRequest
0 голосов
/ 18 декабря 2018

Документация NestJS о базах данных объясняет, как подключиться к MySQL с помощью TypeORM и определения сущностей.

В моем случае мне необходимо подключиться к серверу MySQL, на котором имеется несколько баз данных.и мне нужно выполнить запросы SQL напрямую (без использования слоя Entity) и получить их результаты.Иногда мне также нужно выполнить запросов к базе данных .

Как это сделать, используя NestJS ?

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете импортировать несколько баз данных , используя разные имена соединений.Вы можете либо напрямую передать конфигурацию базы данных в отдельный TypeOrmModule.forRoot({...}) импорт, либо использовать файл конфигурации ormconfig.json.(Однако файл ormconfig.json может все еще не работать с несколькими базами данных, см. Этот поток .)

TypeOrmModule.forRoot({
  ...defaultOptions,
  name: 'personsConnection',
  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  host:  'person_db_host',
  entities: [Person],
}),
TypeOrmModule.forRoot({
  ...defaultOptions,
  name: 'albumsConnection',
  ^^^^^^^^^^^^^^^^^^^^^^^^^
  host:  'album_db_host',
  // You can also leave the entities empty
  entities: [],
})

Как указано в комментариях Камиля, вы можете ввести TypeORM connection объекта с @InjectConnection('albumsConnection'): Connection и затем используйте QueryBuilder или метод query для запуска необработанного SQL.

const rawData = await connection.query(`SELECT * FROM USERS`);
...