企业数据面支持一键恢复到「初始状态」——清空业务数据与结构、Edge Functions、以及 SQL Editor 历史脚本,再重新初始化上线。
三个脚本
| 脚本 | 作用 |
|---|---|
reset/reset-enterprise.sql | 清空数据库:删除 public 下所有表 / 视图 / 类型 / 函数,清空 auth 与 storage 数据 |
reset/reset-functions.sh | 清空 Edge Functions(服务器端执行,自动定位容器与目录) |
reset/reset-studio-content.sh | 清空 SQL Editor 的 PRIVATE 历史脚本 |
操作步骤
1. 备份同步密钥
⚠️ 先备份
sync_secret。它只在首次注册时下发一次,库里这份删了就找不回,只能联系超管reset-sync-secret换新后手动回填。
2. 清空数据库
在自部署宿主机上执行(容器名以实际为准,本项目为 ditops-supabase-db-1):
docker exec -i <数据库容器名> psql -U postgres -d postgres < reset/reset-enterprise.sql
3. 清空 Edge Functions
bash reset/reset-functions.sh
4. 清空 SQL Editor 历史脚本
bash reset/reset-studio-content.sh
5. 重新初始化
在 SQL Editor 中重新执行 supabase-enterprise/supabase/migrations/00001_init.sql,再重新部署 Edge Functions:
bash scripts/deploy-functions.sh
最后在目录重新注册企业、审批、绑定设备(见「部署上线全流程」)。
注意事项
sync_secret只下发一次,重置前务必备份。- 001 迁移幂等,可整文件重跑;对
rls_auto_enable等平台自带函数已做「存在才收回」的兼容处理,全新 / 自部署库均可直接执行。 reset-enterprise.sql只清业务数据,不动 Supabase 平台自身的表(如auth.schema_migrations、storage.buckets_vectors)。