TypeORM+TypeScript迁移文件生成后未注册到migrations表问题
TypeORM 迁移无记录问题排查方案
核心问题原因
你的ormconfig.json配置缺失迁移文件路径配置项,TypeORM CLI无法定位你已经生成的迁移文件,因此会出现无迁移待执行、migrations表无记录的问题。
另外你提到的不带--执行命令报错属于npm正常语法规则:npm run执行script时,额外参数必须通过--分隔才能传递给内部执行的命令,不属于异常问题。
修复步骤
- 修改
ormconfig.json,补充migrations(迁移文件加载路径)和cli.migrationsDir(迁移文件生成路径)配置,示例如下:
{ "type": "mysql", "host": "localhost", "port": 3306, "username": "m3user", "password": "***", "database": "m3db", "synchronize": false, "logging": false, "entities": [ "src/**/models/*.ts" ], // 新增以下配置 "migrations": [ "src/migrations/**/*.ts" ], "cli": { "migrationsDir": "src/migrations" } }
注意:
migrations配置的路径要和你当前生成的迁移文件实际存放路径完全匹配,如果你生成的迁移文件不在src/migrations目录下,请修改为对应路径。
确认你之前生成的
PostRefactoring迁移文件(文件名格式为[时间戳]-PostRefactoring.ts)已经放在上述配置的迁移目录中。执行验证命令查看迁移列表:
npm run typeorm -- migration:show
正常执行会输出你生成的迁移文件,前缀[ ]表示未执行。
- 执行迁移命令:
npm run typeorm -- migration:run
执行完成后即可在数据库的migrations表中看到对应迁移记录,migration:show查询结果前缀会变为[X]表示已执行。
补充注意事项
如果后续需要在生产环境使用编译后的JS文件运行迁移,需要将migrations配置补充JS路径,改为:
"migrations": [ "src/migrations/**/*.ts", "dist/migrations/**/*.js" ]
内容的提问来源于stack exchange,提问作者thomas alt
相关产品推荐
相关产品推荐

