prisma新增字段并同步到数据库,项目中没有迁移文件夹提交记录

在项目中发现缺失迁移文件夹,为避免清空线上数据,采取从线上拉取结构到本地,然后使用Prisma创建迁移。过程中遇到内省规则与现有schema不一致的问题,需手动对比和调整,确保更新字段时不破坏原有数据。由于命名规则冲突,目前只能单向更新数据库结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:项目中没有迁移文件夹(原来的人没有提交该文件夹),线上有数据,现在需要添加一些字段,同时不能清空掉线上的数据。

  1. 先拉取线上的结构到本地

npx prisma db pull

  1. 本地生成迁移记录并应用

npx prisma migrate dev --name init

  1. 修改schema.prisma文件,比如新增字段
  2. 采用定制迁移方案,方便查看sql语句
  3. 生成迁移记录
> prisma migrate dev --create-only
  1. 检查sql语句,ok则应用
> prisma migrate dev --name add_file_to_tableName --skip-seed

–create-only: 只执行sql不应用sql
–skip-seed: 跳过seed阶段,不要影响数据库的原有数据。


踩坑记录:

  1. 由于prisma的内省有规则/约定的字段处理,原有项目中的schema写法和prisma的内省约定/规则不一致,并且项目中应用广泛。
  2. 如果拉取数据库结构会破坏原有手动编写的schema,硬要做pull操作的话,现在只能够跟之前手写的命名去一一做对比,工作量大且效率不高。
  3. 只能使用push来更新字段,也就是说这个项目目前只能使用一种更新数据结构的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值