发布于 2026-01-06 1 阅读
0

引入分支 2.0

引入分支 2.0

装饰性的

Supabase 的分支功能已经存在一段时间了,它允许您在不影响生产环境的情况下进行实验或构建新功能。它需要您将 Supabase 项目连接到 GitHub 仓库,从而自动化工作流程的许多部分,但这也会让那些不喜欢使用 Git 的用户感到不便。今天,我们正式发布分支 2.0,它取消了对 Git 的要求,让创建新分支变得异常简单。

什么是分支?

Supabase 分支本质上是 Supabase 项目的副本,只是不包含数据。与其对生产数据库、边缘函数或配置进行风险较高的更改,不如创建一个预览分支并在其中进行修改。这样就提供了一个安全、隔离的工作环境。当您对更改满意后,再将其合并回生产环境。

⚡️更多发布周信息

当前行为

当前分支功能的实现需要连接到 GitHub 代码库。对于每个 GitHub 拉取请求,都会创建一个对应的 Supabase 分支并保持同步。数据库模式/迁移、函数和配置都存储在您的代码库中,并在您提交代码时同步到 Supabase。对于那些希望以本地代码优先的方式工作的人来说,这是一个理想的工作流程;但是,对于那些更喜欢以数据库优先或无代码的方式工作的人(包括 AI 构建者),这种方式并不适用。

新行为

通过这些新更新,您现在可以创建使用 Git 的分支、不使用 Git 的分支,或者两者结合使用。您可以直接通过控制面板、Supabase CLI 或管理 API完成此操作。每个分支都是生产环境的直接副本,包括架构、函数和配置。之后,您可以连接您的应用程序,进行更改,并在准备发布时,选择将这些更改拉取到您的代码库,或者在不离开控制面板的情况下进行审查和合并。对于那些使用单独的 Supabase 项目的用户,您不再需要这样做。

工作原理

本次教程将完全聚焦于无 Git工作流程。如果您更喜欢代码优先的工作方式,可以查看我们更全面的分支指南

创建一个新分支

示例仪表板

给你的分支命名,可以选择将其同步到 GitHub 分支。如果你的生产分支之前有过迁移(例如,通过 CLI db push),那么这些迁移将在新分支上运行。如果你的生产分支之前没有迁移(例如,所有编辑都是通过表格编辑器完成的),那么db dump将执行一次迁移并将其作为新分支运行。

对新分支进行更改

示例仪表板操作方法

可以使用表编辑器、SQL 编辑器、连接字符串或任何其他方式来更改您的架构或函数。

发起合并请求

来自仪表板的合并请求

合并仪表板中的请求

然后,您、您团队中的某位成员或 Supabase 助手可以通过合并页面查看所做的更改。

从生产环境拉取最新更新

如果您的分支架构或边缘函数已过时,您首先需要从生产环境拉取最新更改。请注意,这样做会丢失所有对边缘函数的修改,但新增的函数将保持不变。

合并到生产环境

合并仪表板

准备就绪后,点击合并按钮,即可查看更改是否已部署到生产环境。如果您的分支是预览分支,现在可以选择将其删除或保持打开状态。

当前局限性

在决定不使用 Git 的情况下使用分支之前,您应该了解一些限制。

  • 通过控制面板创建的自定义角色不会在分支创建时被捕获。
  • 目前仅支持公开的模式更改。
  • 扩展名不包含在差异比较过程中。
  • 分支只能合并到主分支;不支持在预览分支之间合并。
  • 如果你的分支已经过时,你可以从主分支拉取最新的更改,但请记住,所有函数都将被覆盖。
  • 必须在主分支上手动删除函数。
  • 迁移冲突必须在预览分支上手动解决。
  • 如果您已在主分支上运行了迁移,则会根据现有迁移创建新分支,而不是使用完整的模式转储。

何时使用

下表可以帮助您决定是否使用 git 进行分支管理。

Git 不使用 Git
隔离环境
摩擦 低代码 无代码
易用性 完善的仓库设置 从控制面板点击一下即可
合并到生产中 通过拉取请求 通过合并请求
冲突解决 基于文件 没有任何
版本控制 配置即代码 仅跟踪迁移情况。

结束状态

我们最终希望您能够以最高效的方式开发出最高质量的软件,并在最短的时间内交付成果。随着您、您的团队或产品的不断发展,您的工作流程可能会随之改变,因此我们必须确保您能够在不同的工作流程之间无缝切换。如果您想直接在控制面板中开始构建,然后再将所有内容迁移到代码库,这完全可以实现。如果您想创建一个分支进行原型设计,然后再将更改拉取到本地迁移,这也应该能够做到。

我们尚未完全实现这一目标,但通过 CLI 和 Web 界面的结合,这一愿景比以往任何时候都更接近实现。

入门

我们想强调的是,这些分支更新尚处于早期阶段,因此目前仍处于功能预览阶段。任何人都可以通过控制面板选择启用这些功能,但在启用之前,请务必阅读现有限制,因为这些功能可能尚未完全满足您的使用需求。如果您使用了分支功能,请与我们联系并提供反馈,我们非常乐意倾听您的意见。

发布周 15

主舞台

第一天 - JWT 签名密钥简介;
第二天 - 支持 Iceberg 的 Supabase 分析存储桶简介;
第三天 - Branching 2.0 简介

构建阶段

全球社区聚会

文章来源:https://dev.to/supabase/introducing-branching-20-37oc