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

NestJS中TypeORM迁移命令无法传入迁移名称参数求助

解决TypeORM迁移命令无法传入参数的问题

问题分析

你的migration:generate命令中使用了$npm_config_name来获取迁移名称,但之前的传参方式不符合npm配置变量的使用规则,导致无法正确替换变量。

解决方案

方案1:正确使用npm配置变量传参

保持现有package.json命令不变,执行命令时通过--name=迁移名称的形式赋值:

npm run migration:generate --name=AddUserTable

这种方式会将AddUserTable赋值给$npm_config_name,脚本执行时会自动替换路径中的变量。

方案2:改用直接传递参数的方式(推荐)

修改package.json中的migration:generate命令,移除$npm_config_name,保留迁移目录路径:

"migration:generate": "./node_modules/.bin/ts-node ./node_modules/.bin/typeorm migration:generate -d src/database/type-orm-config-migrations.ts ./src/database/migrations/"

执行命令时,通过--将参数传递给脚本本身:

npm run migration:generate -- AddUserTable

--是npm的特殊语法,用于区分npm自身参数和传递给脚本的参数,后面的AddUserTable会直接追加到迁移路径后,生成./src/database/migrations/AddUserTable文件。

方案3:优化命令配置(更简洁)

利用已有的typeorm命令配置,简化migration:generate:

"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
"migration:generate": "npm run typeorm -- migration:generate -d src/database/type-orm-config-migrations.ts ./src/database/migrations/"

执行命令同样使用:

npm run migration:generate -- AddUserTable

为什么之前的命令无效?

  • npm run migration:generate --name:缺少具体的赋值内容,必须用--name=xxx的形式给npm配置变量赋值
  • npm run migration:generate -name:npm配置变量参数需要以--开头,而非-,且同样缺少赋值
  • npm run migration:generate name:这种方式的参数会被npm接收,不会自动赋值给$npm_config_name,不符合配置变量的传递规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:17:17