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

TypeORM执行迁移时提示“No migrations pending”问题求助

TypeORM无法识别迁移脚本(显示“No migrations are pending”但migrations表为空)的排查方案

1. 路径大小写不匹配(最可能的原因)

你的迁移文件实际路径是src/Database/Migrations/(首字母大写),但ormconfig.ts中配置的迁移路径是src/database/migrations/*.ts(全小写)。在区分大小写的文件系统(如Linux/macOS)中,这会导致TypeORM无法匹配到迁移文件。

解决方案:
修改ormconfig.ts中的migrations配置项,与实际路径一致:

migrations: ['src/Database/Migrations/*.ts'],

2. 迁移文件结构/命名不符合要求

TypeORM要求每个迁移文件必须导出一个继承自MigrationInterface的类,且类名需与文件名的后缀部分匹配(驼峰格式)。例如:

  • 文件名:1663525805095-add_users.ts
  • 对应类名:AddUsers1663525805095

检查点:
确认你的迁移文件符合以下结构:

import { MigrationInterface, QueryRunner } from "typeorm";

export class AddUsers1663525805095 implements MigrationInterface {
    public async up(queryRunner: QueryRunner): Promise<void> {
        // 迁移逻辑
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        // 回滚逻辑
    }
}

3. TypeORM CLI配置问题

3.1 验证迁移文件是否被发现

执行migration:show命令,查看TypeORM是否能检测到迁移文件:

yarn typeorm migration:show

如果输出为空,说明路径或文件结构存在问题;如果能列出迁移但显示未执行,再排查执行逻辑。

3.2 检查DataSource导出方式

部分版本的TypeORM CLI对默认导出的支持可能存在问题,可尝试修改ormconfig.ts的导出方式:

// 替换export default source;
export const dataSource = new DataSource({
  // 原有配置
});

同时更新package.json中的typeorm脚本:

"typeorm": "typeorm-ts-node-commonjs -d ./ormconfig.ts#dataSource"

4. 环境变量与数据库连接验证

虽然你提到连接正常,但可临时硬编码数据库信息到ormconfig.ts中,排除环境变量加载异常的可能:

const source = new DataSource({
  type: 'postgres',
  host: 'localhost', // 替换为你的Docker容器IP/主机名
  port: 5432,
  username: 'your-user',
  password: 'your-pass',
  database: 'your-db',
  // 其他原有配置
});

之后重新执行yarn migrations:run,看是否能正常识别迁移。

5. 生成新迁移测试

生成一个全新的测试迁移,验证TypeORM的识别逻辑:

yarn typeorm migration:generate src/Database/Migrations/test-migration

执行完成后,再次运行yarn migrations:run。如果新迁移能被识别并执行,说明之前的迁移文件存在格式或命名问题;如果仍无法识别,继续排查路径或CLI配置。

6. 版本兼容性检查

确认@nestjs/typeorm与typeorm的版本兼容:

  • 查看package.json中的依赖版本,确保两者版本匹配(例如@nestjs/typeorm@10.x对应typeorm@0.3.x)。
  • 若版本不匹配,升级/降级到兼容版本后重试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:36:59