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

自托管Supabase:如何通过Node.js与Prisma连接及迁移应用

自托管Supabase的数据库URI查找与应用迁移指南

一、找到自托管Supabase的数据库URI

有两个实用途径:

  • 查看部署配置文件:你部署Supabase时用到的.env文件(或docker-compose.yml里的环境变量)中,POSTGRES_URL就是Prisma需要的完整DB URI,格式大致为postgresql://<用户名>:<密码>@<主机>:<端口>/<数据库名>?schema=<schema>。如果是Docker部署,默认用户名是postgres,密码是你部署时设置的POSTGRES_PASSWORD,本地应用连接的话主机填localhost,端口默认5432,数据库名postgres,schema默认public。
  • 通过Supabase控制台查看:登录你的<ip-address>:3000控制台,进入设置→数据库页面,里面会直接显示数据库的连接URI,要是已经配置了自定义域名,记得把主机部分换成你的域名或者虚拟机IP。

二、从在线版Supabase迁移到自托管版本的流程

按以下步骤操作:

  1. 导出在线版数据库数据
    • 登录在线Supabase控制台,进入设置→数据库→备份,下载最新的SQL备份文件;也可以用pg_dump命令导出:pg_dump "postgres://<在线版DB URI>" -f supabase-backup.sql
  2. 导入数据到自托管数据库
    • 如果是Docker部署的自托管Supabase,先进入PostgreSQL容器:docker exec -it <supabase-db容器名> bash
    • 用docker cp把备份文件传到容器内,然后执行导入命令:psql -U postgres -d postgres -f /容器内的备份文件路径
  3. 迁移存储桶数据(如果用了Supabase Storage)
    • 在线版控制台进入存储,手动下载所有桶内的文件;或者用Supabase CLI的supabase storage download命令批量导出
    • 登录自托管控制台,创建和在线版同名的存储桶,上传导出的文件
  4. 更新Node.js应用配置
    • 把Prisma的DATABASE_URL替换成自托管的数据库URI
    • 如果用了Supabase Auth或Storage SDK,更新supabaseUrl为你的自定义域名(或虚拟机IP加54321端口,自托管API默认端口是54321),supabaseKey换成自托管.env文件里的ANON_KEY
  5. 测试应用核心功能
    • 运行npx prisma migrate deploy确保数据库结构和Prisma schema匹配
    • 启动Node.js应用,测试数据库读写、用户登录、文件访问等功能,确认所有流程正常
  6. 切换用户流量
    • 确认自托管版本稳定后,把应用域名解析指向自托管虚拟机IP,逐步切换用户流量,完成迁移

内容的提问来源于stack exchange,提问作者Manas S. Roy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:32:54