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

如何在Vercel中为多个Next.js项目共用一个数据库?

解决方案:共享Vercel免费数据库给多个Next.js项目

核心问题分析

  • 第二个项目部署后未执行Prisma迁移,数据库仅存在第一个项目的表结构,导致访问报错
  • 两个项目的Prisma Schema未同步,或数据库连接配置存在问题

具体解决步骤

1. 同步两个项目的Prisma Schema

合并两个项目的模型定义到同一个prisma/schema.prisma文件,确保包含所有需要的表结构,示例:

// 第一个项目的模型
model Post {
  id        Int      @id @default(autoincrement())
  title     String
  content   String?
  createdAt DateTime @default(now())
}

// 第二个项目的模型
model Product {
  id          Int      @id @default(autoincrement())
  name        String
  description String?
  price       Float
}

2. 配置第二个项目的数据库连接

在第二个项目的Vercel环境变量中,将DATABASE_URL设置为第一个项目的PostgreSQL连接字符串(直接从第一个项目的Vercel环境变量面板复制)。

3. 在部署流程中添加Prisma迁移命令

修改第二个项目的package.json,在构建命令前加入迁移指令:

{
  "scripts": {
    "build": "prisma migrate deploy && next build",
    "dev": "prisma migrate dev && next dev"
  }
}

说明:prisma migrate deploy用于生产环境,自动执行所有未应用的迁移;开发环境使用prisma migrate dev。

4. 重新部署第二个项目

在Vercel控制台手动触发第二个项目的重新部署,确保构建阶段成功执行迁移命令,数据库会自动创建第二个项目所需的表。

额外注意事项

  • 若两个项目存在同名模型且结构不一致,需先调整Schema避免冲突
  • Vercel免费数据库有资源限额,共享后需控制两个项目的总请求量,避免超出限制

内容的提问来源于stack exchange,提问作者Kada Guetouache

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:00:55