首页 > 解决方案 > 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,所以也许它破坏了一些包或构建,我不知道。

标签: node.jstypescriptnestjstypeormts-node

解决方案


可能有帮助的几点:

  • 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",

推荐阅读