← AI 百科

Migration failed 迁移失败

报错库 ·
一句话:数据库迁移失败通常是表结构变更、数据冲突、权限不足或迁移顺序不一致导致的。

它是什么

Migration failed是项目在执行数据库结构变更时失败的报错。常见于Prisma、TypeORM、Rails、Django等框架。它可能发生在新增字段、删除字段、改字段类型、加唯一约束或同步线上数据库时。

适合干什么

  • 全栈开发新手
  • 使用ORM的人
  • 部署网站时遇到数据库报错的人
  • 从本地迁移到线上环境的人

不适合干什么

  • 没有数据库权限的人直接强行操作
  • 不备份生产数据就尝试修复的人

普通人怎么用

  • 先复制完整报错,不要只看最后一行
  • 确认连接的是开发库还是生产库
  • 检查迁移文件顺序
  • 看是否有重复字段、重复表或数据不符合新约束
  • 备份后再修复生产库

进阶用户怎么用

  • 把失败迁移拆成更小步骤
  • 先清理脏数据,再加唯一约束或非空约束
  • 用事务保证迁移失败可回滚
  • 建立开发、测试、生产三套迁移流程

常见误区

  • 删除迁移文件后重新生成,导致团队环境不一致
  • 线上库没有备份就reset
  • 本地能跑就以为线上也能跑
  • 忽略已有数据和新字段约束的冲突

和相似工具的区别

  • 代码报错:通常修代码即可。
  • 迁移失败:涉及数据库结构和已有数据,修复前要更谨慎。

入门步骤

  • 备份数据库
  • 复制完整报错
  • 确认环境
  • 定位失败迁移
  • 检查已有数据
  • 修复并重跑

推荐工具(第三方)

Prisma、TypeORM、Django、Rails、DBeaver