首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >prisma2迁移错误:数据库中的迁移比本地迁移更多

prisma2迁移错误:数据库中的迁移比本地迁移更多
EN

Stack Overflow用户
提问于 2020-03-15 08:31:37
回答 2查看 4.8K关注 0票数 3

我正在构建后端应用程序使用prisma2 +类型记录+ nexus +graphql-瑜伽。在尝试通过运行命令保存迁移时,我现在已经定义了我的模式:

代码语言:javascript
复制
prisma2 migrate save --name "init" --experimental

获取以下错误。

错误:数据库中的迁移比本地迁移多。这种情况决不能发生。本地迁移ids:远程迁移ids: 20200312230215-init,20200312232858-init 2

EN

回答 2

Stack Overflow用户

发布于 2020-03-16 09:14:37

这是因为对数据库执行的迁移与prisma/migrations文件夹中的迁移不匹配。

这是在下列情况下发生的:

使用prisma2 migrate save --name “init” --experimental

  • Execute创建迁移
  1. 使用prisma2 migrate up --experimental
  2. 删除prisma/migrations文件夹中的迁移文件
  3. 尝试运行

在步骤4中,您将看到该错误。

Prisma在一个名为_Migration的表中跟踪数据库中执行的迁移。

要解决这个问题,请尝试删除数据库中的_Migration表。使用SQLite,您可以这样做:

代码语言:javascript
复制
sqlite3 prisma/dev.db "delete from _Migration"

如果这样做不起作用,就需要重新创建数据库。如果使用sqlite,请删除prisma/dev.db文件(您将丢失数据库中的所有数据)。

为了防止将来发生这种情况,请确保从干净的数据库开始,如果重用相同的数据库,请避免删除迁移文件(在执行迁移文件后使用prisma/migrations )。

票数 9
EN

Stack Overflow用户

发布于 2020-09-05 03:52:55

当与您使用过迁移的schema.Prisma文件和数据库发生冲突时,您使用了旧的数据库,并且有一个表,它的名称是_Migration,如何解决,所以请尝试通过用户界面或命令行将他从_Migration中删除,并尝试执行yarn prisma migrate save --experimentalprisma2 migrate save --name “new-migration” --experimental,应该是工作的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60691027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档