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

Next.js集成Prisma与Supabase执行迁移遇P1001连接错误求助

Prisma连接Supabase数据库失败(P1001错误)排查方案

问题详情

我正在学习将Prisma和Supabase集成到Next.js应用中,执行npx prisma migrate dev --name init命令时触发了以下错误:

Environment variables loaded from .env
Prisma schema loaded from prisma\schema.prisma
Datasource "db": PostgreSQL database "postgres", schema "public" at "db.xocheossqzkirwnhzxxm.supabase.co:5432"

Error: P1001: Can't reach database server at db.xocheossqzkirwnhzxxm.supabase.co:5432

Please make sure your database server is running at db.xocheossqzkirwnhzxxm.supabase.co:5432.

我的数据库密码不含特殊字符,相关配置文件如下:

schema.prisma 内容

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Home{
  id        String @id @default(cuid())
  image     String?
  title     String
  description String
  price     Float
  guests    Int
  beds      Int
  baths     Int
  createdAt DateTime @default(now())
  updateAt  DateTime @updatedAt
}

.env 内容

DATABASE_URL="postgresql://postgres:[YOUR-PASSWORD]@db.xocheossqzkirwnhzxxm.supabase.co:5432/postgres"

排查与解决步骤

  • 确认Supabase数据库状态:登录Supabase控制台,查看项目数据库是否正常运行,未被暂停或删除。
  • 检查IP白名单:在Supabase项目的「数据库」→「网络访问」中,确认当前设备的公网IP已添加到白名单,或临时开启「允许所有IP」(仅用于测试,生产环境务必限制IP范围)。
  • 验证DATABASE_URL:
    1. 从Supabase控制台「设置」→「数据库」→「连接字符串」复制完整的PostgreSQL连接地址,替换本地.env文件中的内容,确保[YOUR-PASSWORD]已替换为实际密码。
    2. 检查URL中的主机名、端口号(Supabase默认5432)是否拼写正确。
  • 测试网络连通性:在终端执行ping db.xocheossqzkirwnhzxxm.supabase.co或telnet db.xocheossqzkirwnhzxxm.supabase.co 5432,确认本地网络能访问该服务器,若不通则检查防火墙、代理是否限制了5432端口。
  • 重新生成Prisma客户端:执行npx prisma generate后,再次尝试运行迁移命令。

内容的提问来源于stack exchange,提问作者Jacob Mutale

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:55:18