通过


教程:基于分支的开发工作流

重要

Lakebase 自动缩放在以下区域处于 Beta 版本:eastus2westeuropewestus

Lakebase 自动缩放是最新版本的 Lakebase,可自动缩放计算、缩放到零、分支和即时还原。 有关 与 Lakebase 预配的功能比较,请参阅 在版本之间进行选择

了解如何使用 Git 分支等分支,为每个开发人员提供独立工作的独立分支,然后重置以保持同步。

先决条件

  • 具有分支的 production Lakebase 项目(默认值)
  • production创建的用于共享开发工作的development分支
  • 基本熟悉 SQL 和 Postgres

设置起始架构

在创建开发人员分支之前,请在开发分支上设置一个简单的架构。 这充当所有开发人员将从中分叉的共享起点。 创建个人分支时,它会通过写入复制来立即继承此架构。

  1. 导航到 Lakebase UI 中的 开发 分支。
  2. 打开 SQL 编辑器。
  3. 创建包含示例数据的基本用户表:
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email TEXT NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT NOW()
);

INSERT INTO users (email) VALUES
    ('alice@example.com'),
    ('bob@example.com'),
    ('charlie@example.com');

创建开发人员分支

团队中的每个开发人员都可以有一个长期存在的分支来处理正在进行的工作。 可以定期重置以使其与主系统保持同步。

从项目的分支列表中,选择 开发 分支,然后单击“ 创建子分支”。 输入分支名称(必需),例如 dev/alex (遵循模式 dev/<your-name>),然后单击“ 创建”。

该分支会立即创建,并通过写时复制包括开发中的所有架构和数据。

分支层次结构:

production (root)
  └── development (has users table + data)
        └── dev/alex (instantly inherits users table + data)

开发你的功能

首先,通过更新 .env 文件中的连接字符串,将应用程序指向您的开发分支,然后使用正常工作流开发功能。

例如,向应用程序添加用户首选项跟踪将涉及更新用户模型、生成您的框架(Prisma、Alembic、Django 等)的迁移,并在 dev/alex 分支上运行它。 迁移文件可能包含:

ALTER TABLE users ADD COLUMN preferences JSONB DEFAULT '{}';
CREATE INDEX idx_users_preferences ON users USING GIN (preferences);

运行迁移后,在应用程序代码中开发首选项功能并在本地测试完整流。 分支是完全隔离的 - 更改不会影响生产或其他开发人员。

查看所作更改

在提升到其他环境之前,请使用架构差异来准确验证更改的内容。 导航到 dev/alex 分支概述,单击 架构差异,并与 development 进行比较。

并排比较中用绿色显示你的新 preferences 列和索引:

显示添加到 dev/alex 分支的首选项列和索引的架构差异

此验证步骤有助于在更改到达生产之前捕获意外的更改。 有关完整的架构差异文档,请参阅 “比较分支架构”。

推广更改

当你对更改有信心时,请将它们推进到上游分支。 将验证 dev/alex 的相同架构更改应用到 development 分支,然后部署应用程序代码。 此工作流可确保在访问共享环境之前隔离测试架构更改。

重置并重新开始

准备好开始新工作时,请重置个人分支,以与可能已被其他开发人员更改的development保持同步。 这为你提供了从当前共享基线开始的新起点。

导航到 dev/alex 分支,然后单击 “从父级重置”。 重置模式确认所有数据库和角色都将替换为来自 development的最新数据。 此操作不可逆,因此在确认之前,请确保已应用您想要保留的任何更改。

重置数据确认模式

分支现在完全匹配 development ,可供下一个任务使用。

最佳做法

  • 使用一致的命名: 遵循开发人员分支的 dev/<name> 模式。
  • 定期重置: 使分支保持同步 development 以避免偏移。
  • 保护生产: 使用 受保护的分支 防止意外更改