在我的项目的最后一部分中,我似乎无法正确部署 prisma 数据库。该网站成功构建,我可以查看该网站,但当我尝试访问数据库时,它显示以下内容:
无效的 prisma.product.findUnique() 调用:表 main.Product 在当前数据库中不存在。
我确实有用于迁移的架构:
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 = new PrismaClient() 11 月 3 日下午 02:40:16
11 月 3 日 02:40:19 PM 从 server/database/schema.prisma 加载 Prisma 架构 11 月 3 日 02:40:19 PM 数据源“db”:SQLite 数据库“dev.db”位于“file:./dev.db” 11 月 3 日下午 02:40:19
11 月 3 日 02:40:19 PM 在 prisma/migrations 中未发现迁移 11 月 3 日下午 02:40:19
11 月 3 日下午 02:40:19
11 月 3 日下午 02:40:19 没有待申请的迁移。
我已经设置了构建命令:
npm 安装; prisma 生成 --schema=./server/database/schema.prisma; prisma 迁移部署 --schema=./server/database/schema.prisma; npm run build;
当时最新提交中没有迁移目录
当项目构建时,它会包含我为迁移配置的内容吗? “--schema=...”是否指向构建时的正确目录?
我尝试过的: 总的来说,由于我缺乏知识,我的问题比我尝试过的事情还要多。
当我查看该项目的 nuxt 构建文件时,它生成的文件结构与未构建时完全不同,当将 SQL 数据库定标到 dev.db 时,它可能会指向错误吗?
另外,SQL lite 不适合生产?如果是这样,什么替代方案会更好,以及如何将该数据库安装到部署服务器上?
11 月 3 日 02:40:19 PM 数据源“db”:SQLite 数据库“dev.db”位于“file:./dev.db”
这一行是否表明它已找到要连接的数据库? 总的来说,我很困惑为什么它找不到产品表,尽管它在我的架构中提供了。
总体问题是,是什么导致构建的 nuxt 应用程序在查询时看不到该表?
OP 通过在链接到架构之前运行迁移解决了该问题。