我有一个 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/