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

TypeORM migration:generate无法生成迁移文件问题咨询

解决TypeORM 0.3.12迁移生成的两个常见问题

问题1:命令参数错误导致"Not enough non-option arguments"

你之前的命令参数顺序不符合TypeORM 0.3.x的要求,migration:generate必须先指定迁移文件的输出路径(必填位置参数),再传递-d、-n这类选项。

错误命令:

typeorm -d src/dataSource.ts migration:generate -n AddIndexToListing

正确命令格式:

typeorm migration:generate <迁移文件输出路径> -d <数据源文件路径> -n <迁移名称>

示例(生成到src/migration目录):

typeorm migration:generate src/migration/AddIndexToListing -d src/dataSource.ts

注:-n参数可省略,迁移文件名会自动以你指定的路径最后一段作为名称。

问题2:"Cannot use import statement outside a module"错误

全局typeorm命令无法直接解析TypeScript的import语法,必须使用TypeORM提供的TS专用命令,且匹配你的项目模块配置:

情况1:项目用CommonJS模块(tsconfig.json中module为CommonJS)

使用typeorm-ts-node-commonjs命令,参数顺序同样要先写迁移路径:

typeorm-ts-node-commonjs migration:generate src/migration/AddIndexToListing -d src/dataSource.ts

情况2:项目用ES模块(tsconfig.json中module为ESNext/ES2020等)

使用typeorm-ts-node-esm命令:

typeorm-ts-node-esm migration:generate src/migration/AddIndexToListing -d src/dataSource.ts

你之前用typeorm-ts-node-commonjs报错,核心原因是参数顺序错误——必须先指定迁移路径,再传递-d参数。

额外检查项

  • 确认src/dataSource.ts正确导出AppDataSource,且entities配置的路径(src/entity/*Table.ts)能匹配到你的实体文件
  • 检查tsconfig.json的include字段包含src/dataSource.ts、实体文件和迁移文件路径,确保TS能正常编译这些文件
  • 优先使用项目内的TypeORM命令(比如npx typeorm-ts-node-commonjs),避免全局版本与项目依赖版本不一致引发问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 10:52:31