connection - typeorm getConnection() 找不到 "default"连接

标签 connection typeorm nrwl-nx

我有一个 NX mono 存储库项目,我想在其中使用 typeorm。配置文件 ormconfig.json 位于工作区根目录(同一个 package.json 文件夹)中,内容如下:

{
    "name": "default",
    "type": "sqlite",
    "database": "data/db.sql",
    "logging": true,
    "entities": ["libs/database/src/entities/*.entity.{ts,js}"],
    "migrations": ["libs/database/src/migrations/*.{ts,js}"],
    "cli": {
        "entitiesDir": "libs/database/src/entities",
        "migrationsDir": "libs/database/src/migrations",
        "subscribersDir": "libs/database/src/subscribers"
    }
}

正如您所看到的,实体位于数据库库中。

此配置适用于迁移,但当我尝试调用 getConnection() (从任何地方,例如同一工作区中的节点应用程序)时,我收到错误 ConnectionNotFoundError: Connection找不到“默认”。

最佳答案

我也一直在为我的项目使用mono repos。根据我的经验,在几个月前搜索相同的问题后,我发现您应该将 ormconfig.json 文件放在项目的顶级目录中。例如,如果您的目录如下所示:

project/
    packages/
        backend/
        common/
        frontend/
  • 并且您的ormconfig.json文件位于project/packages/backend/目录中,那么您应该将其移动到顶部或父级目录,即 project/

  • 另请确保您的实体迁移在目录路径/树中显示实体文件夹的正确位置。正如我所见,您首先构建并编译您的代码,然后使用node运行它。因此,如果是这种情况,并且您不使用 ts-node 等工具,那么您正确地将 Entities 或 Migrations 目录指向 lib/dist/build 文件夹。

  • 我发现使用 this 也很有帮助。 Ben Awad 提供的实用函数,用于将 TypeORM 与我的数据库连接。希望对你也有帮助!

关于connection - typeorm getConnection() 找不到 "default"连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64625067/

相关文章:

c# - 挂断异步 TCP 客户端连接

many-to-many - TypeORM多对多检索所有关系

sql-server - Passport with TypeORM 如何从javascript调用typescript文件?

javascript - 如何根据我运行的项目更改组件中的文本?

angular-cli - 无法生成库。规则结果无效 : Instance of class Promise

angular - 使用 NX 命令创建 Angular 库时出现 SchematicsException

android - java.lang.IllegalStateException : Cannot perform this operation because there is no current transaction 错误

java - 将 Android 应用程序连接到远程数据

java - HttpURLConnection 关闭 IO 流

javascript - 通过 config.json 文件注册时,导入语句会破坏 typeorm 实体