是否建议创建本地Postgres库运行npx prisma migrate dev命令?
Prisma迁移方案可行性说明
关于是否建议本地运行npx prisma migrate dev
非常建议这么操作,原因如下:
npx prisma migrate dev是Prisma专门为本地开发场景设计的命令,执行过程中会做迁移校验、冲突处理、数据库重置、Prisma Client生成等操作,仅适合无业务数据的本地开发环境使用,直接在托管的预发/生产库运行该命令有极高的误删数据风险- 本地Postgres环境完全可控,修改Schema试错成本极低,不会影响线上业务,也不需要占用托管库的资源、不需要处理远程连接的网络波动问题
关于整体方案的可行性
你描述的方案完全可行,同时这也是Prisma官方推荐的标准生产级迁移工作流,标准执行步骤如下:
- 本地开发阶段:保证本地Postgres版本和预发、生产托管PG版本一致,修改Schema后运行
npx prisma migrate dev --name 自定义迁移标识,命令会自动生成对应迁移文件存储在项目prisma/migrations目录下,确认本地功能正常后将迁移文件提交到代码仓库 - 预发环境验证:代码合并到预发分支后,部署时执行
npx prisma migrate deploy,该命令仅会按顺序执行未应用过的迁移文件,不会做任何开发环境的校验、重置操作,执行完成后在预发环境验证业务功能和数据正确性 - 生产环境发布:预发验证通过后,代码合并到生产分支,部署时同样执行
npx prisma migrate deploy即可
额外注意点:
- 已提交到代码仓库的迁移文件禁止修改,若Schema需要调整请新增迁移,避免不同环境迁移历史不一致导致部署失败
- 生产环境执行迁移前建议先对托管PG做全量备份,规避极端场景下的数据风险
内容的提问来源于stack exchange,提问作者Suparna Gharpure
相关产品推荐
相关产品推荐

