Typeorm 迁移:生成失败 没有足够的非选项参数:得到 0,至少需要 1

Dul*_*ndu 14 typeorm

我以不同的可能方式尝试了这个命令,但我的命令的基本结构是。

 yarn typeorm migration:generate -n=consent-record -d=\"./src/db/CliDataSource.ts\"
Run Code Online (Sandbox Code Playgroud)

这是我在 package.json 中针对yarn berry 的 typeorm 命令

"typeorm": "ts-node -P ./tsconfig.typeorm.json $(yarn bin typeorm) -d ./src/db/CliDataSource.ts",
Run Code Online (Sandbox Code Playgroud)

我还尝试在本地安装 typeorm 作为 npm。并尝试使用 npx。但他们都给出以下错误。“没有足够的非选项参数:得到 0,至少需要 1”这个错误显然没有提到缺少什么。

我的 CliDataSource 是这样的。

export const CliDataSource = new DataSource({
  type: 'postgres',
  host: 'localhost',
  port: 5436,
  username: '****',
  password: '******',
  database: 'consent',
  synchronize: false,
  logging: false,
  entities,
  migrations,
  migrationsRun: true,
  subscribers: [],
});
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我正在使用 typeorm“^0.3.6”

Dul*_*ndu 20

typeorm 的最新更新删除了我们用来重命名迁移的 -n 标志。现在的工作原理是我们需要提供迁移文件路径。它将把迁移存储在指定的文件中。所以更新的操作是

我的 typeorm 别名位于 package.json 中。

"typeorm": "ts-node -P ./tsconfig.typeorm.json $(yarn bin typeorm) -d ./src/db/CliDataSource.ts",
Run Code Online (Sandbox Code Playgroud)

CLI 命令

 yarn typeorm migration:generate ./src/db/migrations/consent-record
Run Code Online (Sandbox Code Playgroud)

官方文档似乎已经过时了。希望它能尽快更新。

特别感谢 Jacob Copini @woov