メインコンテンツまでスキップ

チュートリアル: ブランチベースの開発ワークフロー

備考

Lakebaseオートスケールは、オートスケールコンピュート、ゼロへのスケール、分岐、即時復元を備えたLakebaseの最新バージョンです。 サポートされているリージョンについては、 「リージョンの提供状況」を参照してください。Lakebaseプロビジョニング ユーザーの場合は、 Lakebaseプロビジョニング」を参照してください。

Git ブランチのようなブランチの使用方法を学習し、各開発者に独立した作業のための独立したブランチを提供し、その後、同期を維持するためにリセットします。

前提条件

  • productionブランチを持つ Lakebase プロジェクト (デフォルト)
  • 共有開発作業のためにproductionから作成されたdevelopmentブランチ
  • SQL と Postgres に関する基本的な知識

開始スキーマを設定する

開発者ブランチを作成する前に、開発ブランチに簡単なスキーマを設定します。これは、すべての開発者がフォークする共通の出発点として機能します。個人用ブランチを作成すると、コピーオンライトを通じてこのスキーマが即座に継承されます。

  1. Lakebase UI で 開発 ブランチに移動します。
  2. SQL エディターを開きます。
  3. サンプル データを使用して基本的なユーザー テーブルを作成します。
SQL
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ブランチで実行する必要があります。移行ファイルには次の内容が含まれる場合があります。

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

移行を実行した後、アプリケーションコードにプリファレンス機能を開発し、ローカル環境で全体のフローをテストしてください。あなたの支店は完全に隔離されています。変更は本番運用や他の開発者には影響しません。

変更内容を確認する

他の環境に昇格する前に、スキーマ diff を使用して、何が変更されたかを正確に確認します。dev/alexブランチの概要に移動し、 [スキーマの差分] をクリックして、 developmentと比較します。

並べて比較すると、新しいpreferences列とインデックスが緑色で表示されます。

dev/alex ブランチに追加された設定列とインデックスを示すスキーマ diff

この検証ステップは、本番運用に至る前に意図しない変更を検出するのに役立ちます。 完全なスキーマ比較ドキュメントについては、 「ブランチ スキーマの比較」を参照してください。

変更を宣伝する

昇進は自動的に決まるものではない。変更を促進するには、すでにdev/alexで実行したものと同じ移行をdevelopmentブランチに対して実行します。 Lakebase 特有のステップは含まれていません。 移行ファイルは既にコードベースに含まれているため、これは通常のデプロイプロセスに従います。

  1. 接続文字列を更新して、 developmentブランチを指すようにしてください。
  2. dev/alexで使用したのと同じコマンドを使用して、 developmentに対してマイグレーションを実行します。
  3. 更新されたアプリケーションコードをデプロイしてください。

移行は既にあなたの個人ブランチで検証済みですので、問題なく適用されるはずです。一度昇格すると、他の開発者はdevelopmentからブランチをリセットしたときに更新されたスキーマを見ることができます。

リセットして新しく始める

新しい作業を開始する準備ができたら、他の開発者による変更が加えられている可能性があるdevelopmentと同期を保つために、個人用ブランチをリセットします。これにより、現在の共有ベースラインから新たなスタートを切ることができます。

dev/alexブランチに移動し、 「親からリセット」 をクリックします。リセット モーダルは、すべてのデータベースとロールがdevelopmentの最新データに置き換えられることを確認します。この操作は元に戻すことができないため、確定する前に、保持したい変更をすべて促進したことを確認してください。

データのリセット確認モーダル

ブランチはdevelopmentと完全に一致し、次のタスクの準備が整いました。

ベストプラクティス

  • 一貫した命名を使用します。 開発者ブランチではdev/<name>パターンに従います。
  • 定期的にリセットします。 ドリフトを回避するために、ブランチをdevelopmentと同期させます。
  • Protect 本番運用: 保護されたブランチを使用して偶発的な変更を防止します