当前数据库中不存在表"main.Product".如何在render.com上部署prisma数据库



在项目的最后一部分,我似乎无法正确部署prisma数据库。该网站成功建立,我能够查看该网站,但我试图访问数据库的一天,它说:

Invalid prisma.product.findUnique() invocation: The table main.Product does not exist in the current database.

我确实有迁移的模式:

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url      = "file:./dev.db"
}
...
model Product {
id               String         @id@unique
quantity         Int            @default(0)
physical         Boolean        @default(false)
onhold           Int            @default(0)
}
... 

在render.com上的构建过程中,它指定了以下内容:

11月3日02:40:16 PM从"@prisma/client"导入{PrismaClient}11月3日02:40:16 PM const prisma=新PrismaClient((11月3日02:40:16 PM
11月3号02:40:19 PM从服务器/数据库/schema.Prisma加载的Prisma架构11月3日02:40:19 PM数据源";db":SQLite数据库";dev.db";在";文件:/dev.db";11月3日02:40:19 PM
11月3月02:40:19PM在prisma/migrations中未发现迁移11月3日02:40:19 PM
11月3月02:40:19PM
11月3日02:40:19PM没有要应用的挂起迁移

我已经设置了这样的构建命令:

npm install; prisma generate --schema=./server/database/schema.prisma; prisma migrate deploy --schema=./server/database/schema.prisma; npm run build;

当时,在最新提交的中没有迁移目录

当项目构建时,它会包括我为迁移配置的内容吗?是"--schema=…"在构建时指向正确的目录?

我尝试过的东西:总的来说,由于我缺乏知识,我的问题比我尝试的东西多。

当我看到这个项目的nuxt构建文件时,它生成的文件结构与未构建时完全不同,当将SQL数据库调整为dev.db时,它是否可能指向错误?

此外,SQL lite对生产不好吗?如果是这样的话,有什么替代方案是好的,以及如何将该数据库安装到部署服务器上?

Nov 3 02:40:19 PM  Datasource "db": SQLite database "dev.db" at "file:./dev.db"

这行是否表示它已找到要连接的数据库?总的来说,我很困惑,尽管我的模式中提供了Products表,但它怎么找不到它。

总体问题是,是什么原因导致生成的nuxt应用程序在查询时看不到表?

OP通过在到模式的链接之前运行迁移来解决问题。

最新更新