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

问题描述 投票:0回答:1

在我的项目的最后一部分,我似乎无法正确部署 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 上的构建过程中,它指定了以下内容:

Nov 3 02:40:16 PM  import { PrismaClient } from '@prisma/client'
Nov 3 02:40:16 PM  const prisma = new PrismaClient()
Nov 3 02:40:16 PM  
Nov 3 02:40:19 PM  Prisma schema loaded from server/database/schema.prisma
Nov 3 02:40:19 PM  Datasource "db": SQLite database "dev.db" at "file:./dev.db"
Nov 3 02:40:19 PM  
Nov 3 02:40:19 PM  No migration found in prisma/migrations
Nov 3 02:40:19 PM  
Nov 3 02:40:19 PM  
Nov 3 02:40:19 PM  No pending migrations to apply.

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

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

当时最新的commit中没有迁移目录

项目构建时会包含我为迁移配置的内容吗? '--schema=...' 是否指向构建时的正确目录?

我尝试过的

总的来说,由于我缺乏知识,我的问题比我尝试过的事情还要多。

当我查看该项目的 nuxt 构建文件时,它生成的文件结构与未构建时完全不同,当将 SQL 数据库定位到 dev.db 时,它可能会指向错误吗?

另外,SQL lite 不适合生产?如果是这样,什么替代方案会更好,以及如何将该数据库安装到部署服务器上?

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

这一行是否表明它已找到要连接的数据库? 总的来说,我很困惑为什么它找不到产品表,尽管它在我的架构中提供了。

总体问题是,是什么导致构建的 nuxt 应用程序在查询时看不到该表?

vue.js prisma nuxt3.js render.com
1个回答
1
投票

OP 通过在链接到架构之前运行迁移来解决该问题。

© www.soinside.com 2019 - 2024. All rights reserved.