connection - typeorm getConnection() 找不到“默认”连接
问题描述
我有一个 NX mono repo 项目,我想在其中使用 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 "default" was not found.
解决方案
我也一直在为我的项目使用单声道存储库。根据我的经验,在几个月前也搜索过相同的问题后,我发现您应该将ormconfig.json
文件放在项目的顶级目录中。例如,如果您的目录如下所示:
project/
packages/
backend/
common/
frontend/
并且您的
ormconfig.json
文件位于project/packages/backend/
目录中,那么您应该将其移动到顶部或父目录,即project/
.还要确保您的实体或迁移在目录路径/树中显示实体文件夹的正确位置。正如我所见,您首先构建和编译您的代码,然后使用
node
. 因此,如果是这种情况,并且您不使用类似的工具ts-node
,那么将 Entities 或 Migrations 目录指向lib
/dist
/build
文件夹是正确的。我发现使用Ben Awad 的这个实用功能也很有帮助,将 TypeORM 与我的数据库连接起来。我希望它也能帮助你!
推荐阅读
- json - 从 node-red-contrib-tasmota JSON 获取 Zigbee 设备信息
- sql - SQL 删除带约束的行
- python - 返回烧瓶中现有的 JSON 文件
- django - 在 django rest 框架中限制详细视图
- spark-ar-studio - spark ar 有没有办法通过补丁编辑器而不是脚本将标量转换为字符串?
- javascript - 在 React 函数中运行 setInterval() 会发生多次,并且随着时间的推移会迅速增加数量
- laravel - Blade 中的 laravel 7 路由/url 参数
- javascript - JavaScript 对象未正确分配
- javascript - 从 Javascript 中的单选按钮记录所选值
- angular - 在'fromEvent' observable 触发之前获取数据