nuxt 应用程序部署后,prisma 数据库中不存在表

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

我有一个 nuxt 应用程序,我正在尝试将其部署在服务器上。我使用

npm run build
来构建我的项目并测试它是否正常工作,我使用
npm run start
来测试是否有效。当我的应用程序需要使用数据库时,它会抛出一个错误,说该表不存在,但该表存在。当我在开发模式下运行时
npm run dev
,该应用程序运行良好。这是控制台上出现的错误:

[nuxt] [request error] [unhandled] [500] 
Invalid `prisma.users.findFirst()` invocation:


The table `main.Users` does not exist in the current database.
  at In.handleRequestError (./server/node_modules/@prisma/client/runtime/library.js:122:6854)  
  at In.handleAndLogRequestError (./server/node_modules/@prisma/client/runtime/library.js:122:6188)  
  at In.request (./server/node_modules/@prisma/client/runtime/library.js:122:5896)  
  at async l (./server/node_modules/@prisma/client/runtime/library.js:127:11167)  
  at async Object.handler (./server/chunks/routes/api/register.post.mjs:25:14)  
  at async Object.handler (./server/chunks/runtime.mjs:3079:19)  
  at async Server.toNodeHandle (./server/chunks/runtime.mjs:3345:7)

运行构建后我还使用了命令

npx prisma generate
,但没有成功。我已经被这个问题困扰了几个小时。我还是一个使用 prisma 的初学者。如有任何帮助,我们将不胜感激。

vue.js deployment nuxt.js prisma
1个回答
0
投票

这是在 nuxt 3 项目中使用 sqlite 和 prisma 时出现的问题。对我有用的解决方案是更正架构中引用的 sqlite 数据库文件路径。

如果您在 schema.prisma 文件中使用

url = env("DATABASE_URL")
,则 .env 文件中的 DATABASE_URL 对于生产来说应该是绝对的(这是因为为 nuxt 构建生成的 .output 文件夹已将 schema.prisma 文件复制到
./output/server/node_modules/.prisma/client/
如果您使用像
./dev.db
这样的相对路径,则在生产中找不到数据库文件)。

对我有用的解决方案是在 .env 文件中使用如下路径

DATABASE_URL=file:${PWD}/prisma/main.db

对我来说,进行此更改后,开发和生产都在工作。

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