javascript - Prisma 迁移导致数据丢失
问题描述
我是 prisma 的新手,我正在使用 nodejs 和 prisma 开发一个项目,我的数据库不是空的,我对 prisma 模式进行了一些更改,我想在不丢失数据的情况下迁移它,请问有什么解决方案吗?
解决方案
根据您在评论中提到的问题回答:“我想添加一些列,但我不希望现有数据丢失”
如果您想在现有数据库中添加新列而不导致数据丢失,您需要确保新列/字段是可选的。这可以在 Prisma 中通过用 标记字段的类型来完成?
。
如果您需要该字段是强制性的,您可以分三个步骤完成:
- 首先在您的 prisma 模式中创建新字段作为可选字段并运行迁移
- 运行脚本以更新具有该字段的所有记录以具有某些数据(该数据应取决于您的上下文)。这也必须对生产数据库数据进行。
- 在您的 Prisma 架构中将该字段标记为必填项并运行迁移。它现在不会导致数据丢失,因为该字段是
non-null
针对数据库中的所有记录的。
推荐阅读
- javascript - 为什么 IntersectionObserver 返回的数组中 forEach 的索引始终为 0?
- python - 在顶部使用注释行编辑连接的 csv - Python
- php - Vue @click 事件不适用于显示模式
- c# - 如何通过多个字段加入 LINQ(2 TABLES 1 PK 到 2 FK) c# linq
- python-3.x - python中的子进程:文件不存在
- wordpress - 使用自定义图像创建 GCE 实例后的 Wordpress 部署
- android - 不工作时如何修复 this.backgroundMode.unlock()
- reactjs - 无法读取未定义的属性“名称”:redux-reactstrap-modal
- json - 插入 SQL Server 表的 JSON 对象数据
- templates - 在ansible中对多个主机运行“查找”