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

如何将Supabase仅public schema数据复制到本地PostgreSQL数据库?

从Supabase复制public schema到本地PostgreSQL的可行方案

方案一:用PostgreSQL原生工具pg_dump + psql

这是最直接可靠的方式,无需第三方工具:

  • 从Supabase控制台获取数据库连接信息:进入项目后,到Settings > Database,复制Host、Port、Database名称、User和Password
  • 执行导出命令(本地或远程终端均可):
    pg_dump -h <supabase-host> -p <port> -U <db-user> -d <db-name> -n public -F c -f supabase_public.dump
    
    参数说明:
    • -n public:仅导出public schema
    • -F c:使用自定义压缩格式,节省空间且恢复效率高
    • -f:指定导出文件的路径和名称
  • 本地恢复:
    1. 确保本地已创建目标数据库(无则执行createdb <local-db-name>创建)
    2. 执行恢复命令:
    pg_restore -h localhost -p 5432 -U <local-db-user> -d <local-db-name> -n public supabase_public.dump
    
    若本地数据库无public schema,先执行CREATE SCHEMA public;再恢复

方案二:通过Supabase控制台备份后筛选恢复

如果习惯GUI操作:

  • 登录Supabase控制台,进入目标项目,导航到Settings > Database > Backups
  • 创建并下载最新的全库备份文件(格式为.dump或.sql)
  • 提取并恢复public schema:
    1. 先从备份文件生成public schema的对象列表:
    pg_restore -l <backup-file-path> | grep public > public_schema_objects.txt
    
    1. 基于列表恢复指定schema:
    pg_restore -h localhost -U <local-db-user> -d <local-db-name> -L public_schema_objects.txt <backup-file-path>
    

注意事项

  • 确保Supabase的数据库用户拥有SELECT、USAGE等导出public schema所需的权限
  • 本地PostgreSQL用户需要有创建表、序列等对象的权限
  • 若存在跨schema的外键依赖,需提前处理(仅复制public schema的话一般无需担心)

内容的提问来源于stack exchange,提问作者Vince Frost

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:17:08