在我的專案的最後一部分中,我似乎無法正確部署 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 透過在連結到架構之前運行遷移解決了這個問題。