You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS使用TypeORM执行migration:create提示缺少path参数问题

问题原因

你遇到的是TypeORM版本迭代带来的配置规则变更,和配置语法书写本身无关:

  • cli.migrationsDir是TypeORM 0.2.x旧版本的专属配置项,该版本下CLI会自动读取这个字段作为迁移文件的默认生成路径,你参考的未同步更新的旧教程对应的就是这个版本的操作逻辑。
  • 你当前使用的是0.3.0及以上的新版本,这个版本重构了整个CLI模块,完全移除了cli字段下所有配置项的支持,migration:create命令不再自动读取配置里的默认路径,必须显式传入文件生成路径作为必填位置参数,你看到的Not enough non-option arguments: got 0, need at least 1报错就是提示缺少这个必填路径参数。
  • 你在新版官方文档里搜不到cli.migrationsDir字段是正常的,这个配置项已经被正式废弃,不属于新版数据源配置的支持范围。
可用解决方案

方案1:直接传参执行

你目前使用的命令完全符合新版要求,可以正常生成迁移文件:

yarn typeorm migration:create ./src/migrations/UserMigration -o

其中-o参数表示生成js格式的迁移文件,和你开发环境下读取*.entity.js的配置匹配,不会出现运行迁移时找不到文件的问题。

方案2:封装脚本简化操作

如果不想每次执行都重复输入长路径,可以在package.json里封装自定义脚本,省去重复写路径的步骤:

{
  "scripts": {
    "typeorm": "NODE_ENV=development typeorm-ts-node-esm",
    "migration:create": "yarn typeorm migration:create ./src/migrations/$npm_config_name -o"
  }
}

后续需要新建迁移时,只需要执行以下命令即可,效果和手动传入全路径完全一致:

yarn migration:create --name=UserMigration
额外注意事项

你当前配置里的migrations: ['migrations/*.js']匹配规则需要和迁移文件的实际编译输出路径对齐:如果src/migrations下的文件编译后输出到dist/migrations目录,记得调整匹配规则为对应路径,否则后续执行migration:run时会出现找不到迁移文件的问题。


内容的提问来源于stack exchange,提问作者Dora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 00:45:48