nestjs+mysql:如何连接多个数据库而不设置实体

mfuanj7w  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(781)

关于数据库的nestjs文档解释了如何使用typeorm和定义实体连接到mysql。
在我的例子中,我必须连接到一个具有多个数据库的mysql服务器,并且我需要直接执行sql查询(不使用实体层)并获取它们的结果。有时我还需要运行跨数据库查询。
如何使用nestjs实现这一点?

ni65a41a

ni65a41a1#

您可以通过给定不同名称的连接来导入多个数据库。您可以直接以单独的方式传递数据库配置 TypeOrmModule.forRoot({...}) 导入或使用 ormconfig.json 配置文件(然而 ormconfig.json 文件可能仍然无法与多个数据库一起使用,请参见此线程。)

  1. TypeOrmModule.forRoot({
  2. ...defaultOptions,
  3. name: 'personsConnection',
  4. ^^^^^^^^^^^^^^^^^^^^^^^^^^
  5. host: 'person_db_host',
  6. entities: [Person],
  7. }),
  8. TypeOrmModule.forRoot({
  9. ...defaultOptions,
  10. name: 'albumsConnection',
  11. ^^^^^^^^^^^^^^^^^^^^^^^^^
  12. host: 'album_db_host',
  13. // You can also leave the entities empty
  14. entities: [],
  15. })

正如kamil在注解中所述,您可以注入typeorm connection 对象 @InjectConnection('albumsConnection'): Connection 然后使用 QueryBuilder 或者方法 query 运行原始sql。

  1. const rawData = await connection.query(`SELECT * FROM USERS`);
展开查看全部

相关问题