【问题标题】:Error: P1014 The underlying table for model `_migration` does not exist错误:P1014 模型“_migration”的基础表不存在
【发布时间】: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 版本。我也重新安装了它们,但仍然无法工作。
  • 您能分享一下您与架构一起遵循的步骤吗?
  • 已更新,其他一切正常。只是那个错误,迁移表不在数据库中。

标签: prisma prisma2


【解决方案1】:

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

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

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

【讨论】:

  • 是的,这应该可以。我正在关注文档。但事实并非如此。
  • 这个问题只出现在我使用mysql时,而不是使用sqlite或pgsql时......为什么会这样?
猜你喜欢
  • 2021-10-12
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多