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

如何将Supabase生产数据库的数据拉取至本地Supabase数据库

从Supabase生产数据库同步数据到本地环境的方法

直接用PostgreSQL原生的pg_dump和pg_restore就能搞定,步骤如下:

导出生产数据库数据

  • 打开Supabase控制台,进入你的项目,找到「数据库」→「连接字符串」,复制生产环境的postgres协议连接URL(别复制API相关的那个)。
  • 终端执行导出命令,把URL里的[用户名]「密码」「主机地址」「端口」「数据库名」替换成实际值:
    pg_dump "postgresql://[用户名]:[密码]@[主机地址]:[端口]/[数据库名]" -F c -b -v -f supabase_prod_dump.dump
    
    参数说明:-F c用自定义格式(恢复更高效),-b包含大对象,-v显示实时进度,-f指定导出文件的保存路径。

导入到本地Docker数据库

  1. 确认本地Supabase的supabase-db容器在运行,用docker ps可以查看容器状态。
  2. 把导出的dump文件复制到容器里:
    docker cp supabase_prod_dump.dump supabase-db:/tmp/
    
  3. 执行恢复命令,二选一即可:
    • 方式一:进入容器的psql环境执行
      docker exec -it supabase-db psql -U postgres -d postgres
      
      然后在psql命令行输入:
      pg_restore -U postgres -d postgres -v /tmp/supabase_prod_dump.dump
      
    • 方式二:直接在宿主机终端执行
      docker exec -i supabase-db pg_restore -U postgres -d postgres -v < supabase_prod_dump.dump
      

避坑提醒

  • 导出前最好暂停生产环境的写入操作(如果业务允许),防止导出过程中数据变化导致不一致。
  • 本地数据库的Schema要和生产环境完全一致,不然恢复会报错。可以先在Supabase控制台的「数据库」→「Schema编辑器」导出Schema的SQL,在本地执行同步。
  • 如果生产环境开了Row Level Security(RLS),恢复后需要重新配置权限,或者导出时加上--no-owner --no-privileges参数避免权限冲突。

内容的提问来源于stack exchange,提问作者Jan Cahlík

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 05:37:11