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

如何从Prisma db push切换至Prisma Migrations且不丢失数据?

从Prisma db push切换到Prisma Migrations(MySQL生产库)的安全操作步骤

核心原则:全程保障生产数据安全,先对齐本地与生产schema,再建立迁移基线


  • 第一步:备份生产数据库(必做)
    先给生产库做完整备份,杜绝任何数据丢失风险:

    mysqldump -u [你的MySQL用户名] -p [生产数据库名] > production_full_backup.sql
    

    备份完成后,建议在本地临时库导入验证完整性,确认数据和schema均无问题。

  • 第二步:让本地schema与生产完全对齐

    1. 导出生产库的纯结构(不含数据):
      mysqldump -u [你的MySQL用户名] -p --no-data [生产数据库名] > production_schema.sql
      
    2. 本地创建临时MySQL数据库,导入上述schema:
      mysql -u [本地MySQL用户名] -p [临时数据库名] < production_schema.sql
      
    3. 更新本地Prisma schema:修改prisma/schema.prisma的数据库连接指向临时库,执行:
      prisma db pull
      
      这会将生产schema同步到本地Prisma文件,确保两者100%一致。
  • 第三步:创建初始迁移基线
    本地schema与生产匹配后,让Prisma Migrations将该状态标记为初始基线:

    prisma migrate dev --name initial-baseline
    

    执行后,Prisma会检测到本地临时库与schema无差异,生成初始迁移记录(不会修改数据库),同时在本地库创建_prisma_migrations表记录基线状态。

  • 第四步:验证迁移流程
    测试后续迁移逻辑是否正常:

    1. 修改本地Prisma schema(比如添加一个测试字段)
    2. 生成新迁移:
      prisma migrate dev --name add-test-field
      
    3. 确认本地临时库schema已更新、数据未丢失,验证迁移逻辑正常。
    4. 测试完成后可删除临时库,恢复本地环境。
  • 第五步:部署基线到生产
    确认生产库schema与本地基线完全一致后,在生产环境执行:

    prisma migrate deploy
    

    该命令会在生产库创建_prisma_migrations表,并标记初始基线为已应用,不会修改任何现有数据或schema。此后即可用prisma migrate dev在本地生成迁移,用prisma migrate deploy部署到生产。


注意事项

  • 禁止在生产环境运行prisma migrate dev,该命令仅用于本地开发。
  • 确保各环境Prisma版本一致,避免兼容性问题。
  • 若之前用db push修改过生产库,必须确保本地Prisma schema完全同步生产后再建立基线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 13:07:14