Supabaseは2026年10月15日(現地時間)、新しいブランチがプロジェクト設定、データベーススキーマ、およびエッジ関数をどのように取得するかの詳細なメカニズムを公開した。同社のブログ記事によると、ブランチ作成時には、これらプロジェクト設定、データベーススキーマの移行(マイグレーション)、およびエッジ関数の3つの要素がほぼ並行して動作する。これにより、ブランチは中央値で約20秒後に利用可能となる。このプロセスは、開発者が迅速に新しい環境を構築し、作業を開始できるように設計されているという。

Supabase (スーパベース) が公開した説明によると、ブランチの作成時にプロジェクト設定、データベーススキーマ、エッジ関数の3要素がほぼ並行して処理されることで、各ブランチが独立したプロジェクトとして機能する。

ブランチへの入力元は、そのブランチがGitブランチに紐付いているかどうかによって異なる。GitHub に接続されたブランチは、リポジトリから config.toml、マイグレーションファイル、シードファイル、および関数を読み込む。一方、Gitリポジトリに紐付かないブランチは、Supabaseダッシュボードまたはコマンドラインインターフェース(CLI)から作成され、メインプロジェクトからスキーマと関数を取得する。

ブランチが作成されると、まずデフォルト設定のプロジェクトが割り当てられる。その後、「設定のコピー」、マイグレーションによるデータベーススキーマの適用、および「エッジ関数のデプロイ」の3つの主要なプロセスが実行される。これらの進行状況はブランチのワークフローで確認でき、各ステップは実行中(RUNNING)、成功(EXITED)、警告またはスキップ(PAUSED)、失敗(DEAD)のいずれかの状態を示す。

設定プロセスでは、メインプロジェクトのPostgres (ポストグレス) 設定、コネクションプーラー(スーパバイザー/Supavisor)設定、認証(Auth)、データAPI、リアルタイム(Realtime)、ストレージ(Storage)の設定、SSL強制、およびネットワーク制限がコピーされ適用される。ただし、認証に関するシークレットは引き継がれない。一部のPostgres設定は一度の再起動後に適用され、その後Database Webhooksが有効になる。GitHubに接続されたブランチの場合、リポジトリ内の config.toml の設定がコピーされた設定の上に適用されるため、リポジトリの設定が優先される。

マイグレーションはブランチにメインプロジェクトと同じスキーマ、またはプルリクエストで記述されたスキーマを適用する。GitHubに接続されたブランチでは、プッシュのたびにワークフローが実行され、supabase/migrations ディレクトリ内のファイルが適用される。Gitリポジトリに紐付かないブランチは、メインプロジェクトの supabase_migrations.schema_migrations からマイグレーションファイルを読み込む。各マイグレーションファイルは単一のトランザクションとして実行され、ファイル内のすべてのステートメントが成功すると履歴が記録され、失敗するとロールバックされる。

エッジ関数のデプロイは、メインプロジェクトのアクティブなすべての関数をブランチにコピーする。このコピープロセスは設定のコピーと並行して実行され、ブランチが利用可能になるまで完了を待つ。


参考: Supabase Blog — 2026年10月15日 09:00 (JST)

原文ハイライト

"How a new branch gets its config, migrations, and functions"

この記事をシェア
X はてブ LinkedIn