错误:P1014 模型“_migration”的基础表不存在

Posted

技术标签:

【中文标题】错误:P1014 模型“_migration”的基础表不存在【英文标题】:Error: P1014 The underlying table for model `_migration` does not exist 【发布时间】:2021-02-20 14:13:57 【问题描述】:

我在 Prisma 迁移中遇到此错误。我知道这是实验性的,但我需要数据库中的迁移表。

我的架构如下

datasource db 
    provider = "mysql"
    url      = env("DATABASE_URL")


generator client 
    provider = "prisma-client-js"


// a user can be an admin or a borrower or lender
enum Role 
    Lender
    Borrower
    Admin


model User 
    id        Int      @id @default(autoincrement())
    email     String   @unique
    name      String
    role      Role
    createdAt DateTime @default(now())
    updatedAt DateTime @updatedAt

首先我运行 npx prisma migrate save --experimental

然后 npx prisma 向上迁移 --experimental

我得到的错误是这样的。

错误:P1014

模型_migration 的基础表不存在。

另外,在我调用 npx prisma migrate save --experimental 之后,迁移表在数据库中 但是在我运行 npx prisma migrate up --experimental 之后,它向我显示了这个错误。

【问题讨论】:

您使用的是哪个版本的@prisma/client@prisma/cli?通过在单独的数据库上本地安装相同的最新版本来重试。 我正在使用 @prisma/client 和 @prisma/cli 的 2.10.2 版本。我也重新安装了它们,但仍然无法工作。 您能分享一下您与架构一起遵循的步骤吗? 已更新,其他一切正常。只是那个错误,迁移表不在数据库中。 【参考方案1】:

我用2.10.2 尝试了上述架构,它在干净的新数据库上运行良好。我建议再次尝试删除由 Prisma 创建的本地 migrations 文件夹并使用以下命令进行检查:

prisma migrate save --experimental
prisma migrate up --experimental

这应该适用于没有任何表的干净数据库。

【讨论】:

是的,这应该可以。我正在关注文档。但事实并非如此。 这个问题只出现在我使用mysql时,而不是使用sqlite或pgsql时......为什么会这样?

以上是关于错误:P1014 模型“_migration”的基础表不存在的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P1014 Cantor表

洛谷——P1014 Cantor表

Flyway 发现多个版本的迁移

P1014 [NOIP1999 普及组] Cantor 表

洛谷 P1014 Cantor表蛇皮矩阵/找规律/模拟

尝试添加迁移时,SQL 中缺少迁移数据