首页 > 解决方案 > Prisma 迁移导致数据丢失

问题描述

我是 prisma 的新手,我正在使用 nodejs 和 prisma 开发一个项目,我的数据库不是空的,我对 prisma 模式进行了一些更改,我想在不丢失数据的情况下迁移它,请问有什么解决方案吗?

标签: javascriptnode.jsprisma

解决方案


根据您在评论中提到的问题回答:“我想添加一些列,但我不希望现有数据丢失”

如果您想在现有数据库中添加新列而不导致数据丢失,您需要确保新列/字段是可选的。这可以在 Prisma 中通过用 标记字段的类型来完成?

如果您需要该字段是强制性的,您可以分三个步骤完成:

  1. 首先在您的 prisma 模式中创建新字段作为可选字段并运行迁移
  2. 运行脚本以更新具有该字段的所有记录以具有某些数据(该数据应取决于您的上下文)。这也必须对生产数据库数据进行。
  3. 在您的 Prisma 架构中将该字段标记为必填项并运行迁移。它现在不会导致数据丢失,因为该字段是non-null针对数据库中的所有记录的。

推荐阅读