使用mongo-migrate-ts执行mongo-migrate up时提示无迁移文件问题求助
解决mongo-migrate-ts执行
up提示No migrations found的问题 以下是几个常见的排查和修复方案:
1. 让工具直接识别TypeScript文件
mongo-migrate-ts默认无法直接处理TS文件,需借助ts-node运行:
- 先安装必要的开发依赖:
npm install -D ts-node typescript @types/node - 用ts-node调用迁移工具:
也可以在package.json中添加脚本简化操作:ts-node ./node_modules/mongo-migrate-ts/bin/mongo-migrate.ts up
之后运行{ "scripts": { "migrate:up": "ts-node node_modules/mongo-migrate-ts/bin/mongo-migrate.ts up" } }npm run migrate:up即可。
2. 验证迁移目录配置和路径
- 检查
migrations.json中的migrationsDir字段,确保路径与实际存放迁移文件的目录一致。比如迁移文件在项目根目录的migrations文件夹,配置里的"migrationsDir": "migrations"就是正确的,注意不要拼写错误或使用错误的相对路径(如文件在src/migrations下,需改为"src/migrations")。 - 确认
migrations目录存在且包含生成的TS迁移文件。
3. 检查迁移文件的命名和类导出
- 迁移文件的类名必须严格遵循
Migration<时间戳>格式,比如文件名是1696001448527_Migration.ts,对应的类名必须是Migration1696001448527,两者时间戳需完全一致。 - 确保类正确实现
MigrationInterface并通过export导出。
4. 先编译TypeScript再执行迁移
若不想用ts-node,可先编译TS文件为JavaScript:
- 在
tsconfig.json中配置outDir指定编译输出目录,比如"./dist"。 - 执行
tsc命令编译所有TS文件,此时migrations下的TS会被编译到dist/migrations目录。 - 修改
migrations.json中的migrationsDir为"dist/migrations",再执行mongo-migrate up。
内容的提问来源于stack exchange,提问作者DONGMO BERNARD GERAUD
相关产品推荐
相关产品推荐

