You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Keystone应用至Heroku后出现main.User表不存在的Prisma错误求助

解决Keystone部署Heroku后main.User表不存在的问题

步骤1:核对数据库连接配置

  • 用Heroku CLI查看应用的数据库链接:heroku config:get DATABASE_URL -a 你的应用名称
  • 确认该链接和本地prisma/schema.prisma里datasource db的url配置一致,避免连错数据库实例

步骤2:通过Prisma Migrate同步表结构(关键)

手动创建表会导致Prisma迁移状态不一致,必须用Prisma的迁移工具来管理:

  1. 本地确保已生成正确的迁移文件:执行npx prisma migrate dev,完成后将prisma/migrations文件夹提交到Git
  2. 在package.json中添加自动迁移命令,让Heroku部署时自动同步:
    "scripts": {
      "start": "keystone start",
      "postinstall": "prisma migrate deploy"
    }
    
  3. 若已部署,手动在Heroku执行迁移:heroku run npx prisma migrate deploy -a 你的应用名称

步骤3:同步Prisma客户端与Schema

  • 本地执行npx prisma generate,重新生成适配当前Schema的Prisma客户端
  • 将生成的prisma/client相关文件提交到Git,重新部署到Heroku

步骤4:检查Heroku数据库的Schema与表

  • 用Heroku CLI连接数据库:heroku pg:psql -a 你的应用名称
  • 执行\dt查看所有表,若提示找不到User,检查是否是Schema问题:执行SET search_path = main;后再执行\dt,确认User表是否存在
  • 若Prisma Schema中指定了schema: "main",确保数据库的main Schema已创建

步骤5:重置数据库(仅测试环境使用)

如果以上步骤无效,且是测试环境可接受数据丢失:

  • 本地执行npx prisma migrate reset,重置本地数据库并重新生成迁移
  • 提交最新迁移文件后重新部署,或手动在Heroku执行heroku run npx prisma migrate deploy

内容的提问来源于stack exchange,提问作者Mehrez Kanzari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 22:30:53