node.js - TypeORM 命令不返回任何内容
问题描述
我有一个带有 TypeORM 的 Nest 项目。几个月前,我设置了我的数据库,但我不再测试数据库(运行迁移、播种、删除模式等)。现在,我正在尝试运行任何 TypeORM 命令,但没有任何反应。
我试图用这两个运行 TypeORM:
ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js
node --require ts-node/register ./node_modules/typeorm/cli.js
嵌套:v7.4
嵌套 TypeORM:v7.1.5
TypeORM:v0.2.24(但 CLI 返回 v6.14.11)
哦,差点忘了,我意识到我的 Node 已经过时了,在 v13 中,然后我更新到 v14,所以也许它破坏了一些包或构建,我不知道。
解决方案
可能有帮助的几点:
- TypeORM 对生成的 JS 代码进行操作。在运行迁移或模式日志命令之前先构建项目。
- 必须在构建输出目录中生成一个 ormconfig.js 文件。确保文件在那里。
- 检查 ormconfig 文件中的 glob 模式。我首先犯了错误,并为 Typescript 文件定义了通配符。但同样,TypeORM CLI 正在处理构建输出,因此 glob 模式必须以 JS 文件为目标。如果我没记错的话,TypeORM schema:log 命令告诉我我的模式没有变化,但我知道有。问题是我的 ormconfig 文件有问题。
我在 package.json 中定义了这些脚本,并注意到与您的命令相比,我明确提供了 ormconfig 文件的路径。也许你可以试试这个:
"typeorm:cli": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli -f dist/src/database/config/ormconfig.js"
"migration:show": "npm run typeorm:cli -- migration:show",
"schema:log": "npm run build && npm run typeorm:cli -- schema:log",
推荐阅读
- javascript - 谷歌表格脚本编辑器 - 保存后脚本不起作用
- python - 仅在修改后如何读取文本文件?
- android - Firebase 实时数据库密钥生成对于 Android/iOS 设备上的时钟变化是否可靠?#AskFirebase
- javascript - Vuelidate requiredIf 不使用复选框
- delphi - 如何自动增加内部版本号?
- asp.net-core - 在 RHEL 7 中运行 ASP.NET Core 的问题
- python - Pandas 列中的多个局部最大值超过阈值
- react-admin - 操作创建按钮路径
- visual-studio-2017-build-tools - 以正确的编码生成 .resx 资源文件
- docker - Docker 构建时间戳