未使用 TypeORM 找到连接“默认”

新手上路,请多包涵

我将 TypeORM 与 NestJS 一起使用,但无法正确保存实体。

连接创建工作,postgres 在 5432 端口上运行。凭证也可以。

但是,当我需要使用 entity.save() 保存资源时,我得到了:

 Connection "default" was not found.

Error
    at new ConnectionNotFoundError (/.../ConnectionNotFoundError.ts:11:22)

我检查了 TypeORM ConnectionManager 的源文件( https://github.com/typeorm/typeorm/blob/master/src/connection/ConnectionManager.ts ),但似乎 TypeORM 第一次创建连接时它属性为“默认”名称,如果我们不提供,对我来说就是这种情况。

我将 TypeORM 与 TypeOrmModule 设置为

TypeOrmModule.forRoot({
      type: config.db.type,
      host: config.db.host,
      port: config.db.port,
      username: config.db.user,
      password: config.db.password,
      database: config.db.database,
      entities: [
        __dirname + '/../../dtos/entities/*.entity.js',
      ]
    })

当然,我的常数是正确的。有任何想法吗 ?

原文由 ValentinV 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

您正在尝试在未建立连接的情况下创建存储库或管理器。

尝试在函数中执行此 const shopkeeperRepository = getRepository(Shopkeeper); 。它会起作用的

原文由 Saras Arya 发布,翻译遵循 CC BY-SA 4.0 许可协议

赞成的答案不一定正确,如果您未指定连接名称,它将默认为“默认”。

 const manager = getConnectionManager().get('your_orm_name');
const repository = manager.getRepository<AModel>(Model);

原文由 Dragos Podaru 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题