我正在构建后端应用程序使用prisma2 +类型记录+ nexus +graphql-瑜伽。在尝试通过运行命令保存迁移时,我现在已经定义了我的模式:
prisma2 migrate save --name "init" --experimental获取以下错误。
错误:数据库中的迁移比本地迁移多。这种情况决不能发生。本地迁移ids:远程迁移ids: 20200312230215-init,20200312232858-init 2
发布于 2020-03-16 09:14:37
这是因为对数据库执行的迁移与prisma/migrations文件夹中的迁移不匹配。
这是在下列情况下发生的:
使用prisma2 migrate save --name “init” --experimental
prisma2 migrate up --experimental prisma/migrations文件夹中的迁移文件在步骤4中,您将看到该错误。
Prisma在一个名为_Migration的表中跟踪数据库中执行的迁移。
要解决这个问题,请尝试删除数据库中的_Migration表。使用SQLite,您可以这样做:
sqlite3 prisma/dev.db "delete from _Migration"如果这样做不起作用,就需要重新创建数据库。如果使用sqlite,请删除prisma/dev.db文件(您将丢失数据库中的所有数据)。
为了防止将来发生这种情况,请确保从干净的数据库开始,如果重用相同的数据库,请避免删除迁移文件(在执行迁移文件后使用prisma/migrations )。
发布于 2020-09-05 03:52:55
当与您使用过迁移的schema.Prisma文件和数据库发生冲突时,您使用了旧的数据库,并且有一个表,它的名称是_Migration,如何解决,所以请尝试通过用户界面或命令行将他从_Migration中删除,并尝试执行yarn prisma migrate save --experimental或prisma2 migrate save --name “new-migration” --experimental,应该是工作的。
https://stackoverflow.com/questions/60691027
复制相似问题