概観
SQL 変更スクリプトのレビューはデータベース変更プロセスにおける重要な工程で、かつては DBA だけが担っていました。開発者は変更がリリースされる直前に DBA に SQL スクリプトを提出することが多く、DBA がレビューしたり修正を要求したりする時間はわずかしか残らず、変更の品質を保つのが難しい状況でした。
Bytebase は、強力な SQL レビュー機能で開発者が健全なデータベース変更を行えるようにする、データベース CI/CD ツールです。開発者のワークフローに馴染ませるため、Bytebase はその機能を GitHub に統合し、開発者が GitHub リポジトリで SQL スクリプトを管理しながらそこで SQL レビューも実施できるようにしています。これによりツール間の切り替えが不要になり、何より SQL レビューをデプロイ段階ではなくプルリクエスト (PR) 段階で行えるようになります (シフトレフト)。

異なるニーズに対応するため、Bytebase は 3 つの統合モードを提供します。
本記事では、これら 3 つのモードの違いを詳しく紹介します。
GitHub Action
Bytebase は、事前に生成したワークフローファイルを .github ディレクトリに置くだけで、CI プロセスに SQL レビュールールを組み込む GitHub Action ベースの SQL レビューを自動化します。
セットアップ
-
GitHub Action のワークフローファイルを取得する
Bytebase GitHub Action にアクセスし、適切な構成ファイルを取得します。
-
デフォルトの SQL レビュールールを有効化するワークフローファイルを手動で作成する
リポジトリに
.github/workflows/sql-review.ymlを手動で作成し、提供されたテンプレートに沿って必要なパラメータを書き換えます。 -
SQL レビューテンプレートをカスタマイズする
デフォルトのレビュールールに満足できない場合、Bytebase はビジュアルな SQL レビュールール設定ページ SQL レビューガイド を用意しています。ここでカスタムルールをワンクリックで YAML にエクスポートし、Action ワークフローファイルの override-file-path パラメータでそのファイルを指せば、カスタムルールが有効になります。
詳細な設定手順は GitHub Action のドキュメント を参照してください。
結果
設定が済むと、提出された PR に SQL が含まれていれば SQL レビュープロセスが自動で動き、詳細なレビュー結果が変更ファイルにインラインで表示されます。

良い点と悪い点
✅ 無料。 GitHub Action を無料で利用できる。
✅ 軽量。 追加コンポーネントのデプロイは不要。コードリポジトリに 1 つファイルを生成して有効化するだけ。
✅ 複数のデータベースタイプに同時対応。 ファイルパスでデータベースタイプを明示することで、複数 DB の SQL レビューを同時にサポートできる。
❌ 設定がやや煩雑。 初期設定や SQL レビュールールの更新には YAML を手で編集する必要がある。
❌ 基本的な SQL レビュー能力にとどまる。 データベースに接続できないため、SQL テキストに対する静的ルールに限定される。
❌ アクティブな SQL レビューポリシーは 1 つだけ。 同時に有効にできるルールセットは 1 つ。
❌ 表示が限定的。 SQL レビュー結果はレビュー対象ファイル内でしか確認できず、全体のサマリがない。
❌ CI のみ。 SQL レビューだけをカバーし、後続の SQL デプロイプロセスとは統合されない。
GitHub App
Bytebase GitHub App をリポジトリにインストールし、SQL レビュープロセスを CI に統合できます。
セットアップ
-
Bytebase GitHub App をインストールし、対象リポジトリと接続して SQL レビューを有効化する。
-
SQL レビュールールをカスタマイズする
hub.bytebase.com でビジュアルに独自の SQL レビュールールを設定でき、すべての変更は即座に反映されます。詳細は GitHub App のドキュメント を参照してください。
結果
設定が済むと、提出された PR に SQL が含まれていればレビュープロセスが自動で動きます。
PR の概要画面で SQL レビュー結果のサマリを確認できます。

ファイルごとの詳細なレビュー結果も、ファイル内にインラインで表示されます。

良い点と悪い点
✅ 無料。 App を無料で利用できる。
✅ 軽量。 追加コンポーネントのデプロイは不要。ワンクリックで GitHub App をデプロイして有効化できる。
✅ 設定が簡単。 ポイント・アンド・クリックで完結。
✅ 網羅的な表示。 PR の概要画面とファイル単位ページの両方で SQL レビュー結果を確認できる。
❌ 基本的な SQL レビュー能力にとどまる。 データベースに接続できないため、SQL テキストに対する静的ルールに限定される。
❌ データベースタイプの明示が必要。 データベースに接続できないため、対応 DB タイプを明示的に設定する必要がある。
❌ アクティブな SQL レビューポリシーは 1 つだけ。 同時に有効にできるルールセットは 1 つ。
❌ CI のみ。 SQL レビューだけをカバーし、後続の SQL デプロイプロセスとは統合されない。
GitOps CI
Bytebase Console ベースの統合モードでは、より強力な機能が使えます。
- 変更対象 DB と接続することで、より高度な SQL レビュールールを解放する。
- 後続の CD プロセスと統合する。
セットアップ
-
Bytebase Console をデプロイし、基本設定を完了する
このモードでは Bytebase Console のデプロイが必要で、データベース環境を Bytebase にインポートします。詳細な手順は Bytebase インストールガイド を参照してください。
-
ワンクリックで SQL レビュー CI を有効化する
Bytebase Console のプロジェクト設定ページで GitOps ワークフローを構成すれば、GitHub Action を自動で設定できます。
-
SQL レビュールールをカスタマイズする
デフォルトの SQL レビュールールに満足できない場合は、Bytebase Console からビジュアルに設定でき、変更は即座に反映されます。
詳細は GitOps CI のドキュメント を参照してください。
結果
設定が済むと、提出された PR に SQL が含まれていればレビュープロセスが自動で動きます。

良い点と悪い点
✅ 設定が簡単。 ポイント・アンド・クリックで完結。
✅ 高度な SQL レビュー能力。 Bytebase がデータベースに接続して構造や統計を取得できるため、より高度な SQL レビューを提供できる。
✅ 複数の SQL レビューポリシーを同時に有効化できる。 環境 (Test、Prod) に紐づけて複数のポリシーを設定できる。
✅ CD との統合。 SQL レビューが通過し、コードがマージされた後、後続の SQL デプロイプロセスが自動的にトリガーされ、シームレスなデータベース CI/CD 体験を実現する。これによりアプリケーション開発者チームと DBA チームの SQL レビュー基準が統一される。
✅ データベースタイプを指定する必要がない。 Bytebase はデータベースに接続して種別を自動判定できる。
❌ 有償サブスクリプションが必要。 Bytebase Enterprise サブスクリプションが必要。
❌ セットアップ作業が多い。 Bytebase Console のデプロイとデータベース環境の準備が必要。
❌ 表示が限定的。 SQL レビュー結果はレビュー対象ファイル内でしか確認できず、全体のサマリがない。
比較表
| GitHub Action | GitHub App | GitOps CI | |
|---|---|---|---|
| 想定ユーザー | 個人・小規模チーム | 個人・小規模チーム | 完全なデータベース変更管理を求めるチーム |
| 料金 | 無料 | 無料 | Enterprise サブスクリプション |
| セットアップ | GitHub Action をデプロイ | GitHub App をデプロイ | Bytebase Console をデプロイし、データベース環境を準備 |
| 設定 | コードベース、UI でアシスト | ポイント・アンド・クリック | ポイント・アンド・クリック |
| SQL レビュー能力 | SQL ステートメントベース | SQL ステートメントベース | SQL ステートメント + DB メタデータ・統計 |
| 結果の表示 | ファイル内インラインコメント | ファイル内インラインコメント + PR 概要コメント | ファイル内インラインコメント |
| ポリシー | アクティブポリシーは 1 つ | アクティブポリシーは 1 つ | 複数のアクティブポリシー、DB 環境と自動マッチ |
| CI/CD 統合 | SQL レビューのみ | SQL レビューのみ | SQL レビュー + SQL 変更デプロイ、シームレスな CI/CD |