使用 supabase 的 Prisma 迁移失败

Posted

技术标签:

【中文标题】使用 supabase 的 Prisma 迁移失败【英文标题】:Prisma migration fail with supabase 【发布时间】:2022-01-10 14:40:17 【问题描述】:

我正在尝试使用 Prisma 生成一些迁移。 我正在使用 Supabase,它在后台使用 Postgres。 另外,我尝试使用本地模拟器和“真实项目”运行以下命令。

当我运行prisma db push 时,它正在工作,因此可以建立 prisma 和 supabase 之间的通信。 但是当我尝试运行prisma migrate dev 时,出现以下错误

Error: db error: ERROR: no such database: prisma_migrate_shadow_db_b2ce3e4e-c5ef-41f6-830f-2203a082f1db
   0: sql_migration_connector::flavour::postgres::sql_schema_from_migration_history
             at migration-engine/connectors/sql-migration-connector/src/flavour/postgres.rs:367
   1: migration_core::api::DevDiagnostic
             at migration-engine/core/src/api.rs:108

Supabase CLI:0.15.3 棱镜:3.6.0

【问题讨论】:

【参考方案1】:

我也在 Prisma repo 上问过这个问题:https://github.com/prisma/prisma/issues/10575

解决方案是创建文档中提到的影子数据库 https://www.prisma.io/docs/concepts/components/prisma-migrate/shadow-database#cloud-hosted-shadow-databases-must-be-created-manually

【讨论】:

你能用 supabase 做到这一点吗?我没有看到我可以在 UI 中的哪个位置创建第二个数据库。 不,我使用 Docker 通过生成 Postgresql DB 的第二个实例来做到这一点

以上是关于使用 supabase 的 Prisma 迁移失败的主要内容,如果未能解决你的问题,请参考以下文章

为啥 referentialIntegrity = "prisma" 不能防止迁移中的外键?

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

坚持使用 prisma1 模式设计和数据迁移

Prisma:所有迁移都已应用

如何使用 Github-actions 在 Docker 上使用 Mysql 运行 Prisma 迁移

markdown Prisma迁移