1. 产品介绍

给应用准备一个可以读写的后端

Supabase围绕 Postgres 关系数据库提供应用后端能力:保存业务数据、通过 API 访问,并与登录、文件存储和函数等服务配合。它适合开发预约、内容或业务管理应用,不是只供人查看报表的工具。

假设你维护一家摄影工作室的预约网站,准备给订单增加“拍摄时长”。直接修改线上数据库,会让正在使用旧表单的人面对尚未验证的新规则。本文聚焦的分支功能,把这次结构尝试放进另一个环境,再决定怎样带回正式项目。

这里的结构是表、列、约束等规则,数据是已经存在的预约记录。复制了结构,不代表同时复制了客户预约。

默认分支不含生产数据,结构合并不是记录复制。业务检查与冲突处理示意为建议流程;不代表已通过迁移测试。可放大查看。

2. 核心使用流程

先获得正确入口,再创建隔离环境

以给摄影预约增加“拍摄时长”为教学情境,先区分结构与数据:列、约束是结构,已有预约是数据。仪表盘指南说明,新项目首次使用不连接 GitHub 的分支时,需要 Owner 或 Administrator 启用;之后 Developer 角色也可创建、更新和删除预览分支。

从分支选择器创建分支,确认当前编辑目标。分支概览说明分支有独立实例和凭据,默认不带生产数据与存储对象。需要 Include data 时依赖 PITR(按时间点恢复数据库)附加功能并增加资源成本;只验证字段规则时,可以先准备受控测试记录。

在分支里把结构与应用一起试过

  1. 连接测试应用:使用分支自己的连接信息和 API 访问密钥,避免画面看似在测试、请求却仍发向生产。
  2. 修改结构:通过 SQL Editor 或 Table Editor 增加时长字段,确定空值、默认值与约束。
  3. 放入有意义的数据:不仅测试一条完整新预约,也检查缺少时长的旧记录怎样经过变化。
  4. 验证新旧客户端:新表单能写入还不够,旧表单的提交和读取也要有明确预期。这些是迁移验收建议,分支不会自动替团队覆盖全部业务条件。

独立环境让试改有落点,但“空库里建表成功”与“旧业务能够迁移”仍是两个不同结论。

先审阅迁移,再决定怎样带回正式项目

无需 Git 的分支路径把创建、编辑、生成差异与合并连起来。迁移是把数据库结构从旧状态改到新状态的一组操作。创建合并请求后阅读结构变化,有冲突先处理,再确认应用到正式环境。合并传递的是结构迁移,不是把预览环境的一切整体覆盖到线上。

生成差异的 pg-delta 仍标为 alpha(早期试验阶段),自动结果应作为审阅材料。新增必填字段、删除约束和修改默认值分别有什么后果,需要结合旧记录与旧代码判断。完成这条流程,意味着已经在分支里试过改动,并清楚知道哪些结构变化将应用到正式项目,而不只是成功点过合并。

3. 设计亮点与借鉴

把“在哪个环境修改”做成持续可见的上下文

仪表盘的分支选择器决定 SQL 与表格编辑面向哪个环境;外部程序则使用该分支自己的连接信息。对摄影工作室来说,“给预约加一列”看起来是相同操作,但在预览与生产环境执行的后果完全不同。

这个设计值得关注的地方,是环境不只是创建时选过一次的配置,而是每次编辑都应能确认的上下文。独立凭据使应用连接也跟随环境区分。团队还需要在自己的测试应用里显露环境名称,避免把一张看起来正常的页面误认成预览结果。

把一次直接修改,变成可审阅的迁移

在表格编辑器里编辑表结构、增加字段很直观,但团队真正需要确认的是“会改变什么”。差异预览把交互动作转成了可讨论的结构变化:新增列、删除约束、修改默认值,影响并不相同。

因此,确认前最有价值的问题不是“界面是否保存成功”,而是“旧记录与旧代码怎样经过这次变化”。先展示变化,再要求确认,给开发者留下了发现误删和缺少迁移步骤的机会。

让试验入口适应已有工作方式

不要求先建立 Git 集成,就能开始一次分支试改,降低了使用仪表盘管理结构的人采用隔离环境的门槛。已经把迁移放在代码审查里的团队,则可以继续使用 Git 路径。

这体现了一种值得借鉴的取舍:让人更容易先在分支里试改,再看清变化,最后确认是否应用到正式项目。方便应让人更容易进入正确环境、看见变化,而不是让确认消失。