SQL レビューLint。レビュー。承認。
本番に出る前に悪い SQL を捕まえる。Lint がタイポを、セマンティックルールがアンチパターンを、承認ワークフローがポリシー違反を捕まえる。
SQL レビューのアーキテクチャ
3 つのレイヤー。1 つのレビュー。
Lint
構文とスタイル。タイポ、フォーマット違反、方言の誤りを、SQL がデータベースに到達する前に捕まえる。
セマンティックルール
スキーマを理解したチェック。主キーを要求する、破壊的なカスケードを禁止する、命名規約を強制する、欠落している索引を指摘する。
承認付きポリシー
ロールベースの人によるレビュー。本番変更は DBA へ、下位環境は自動承認、ブレークグラスは監査証跡を残す。
PostgreSQL の SQL レビュー
PostgreSQL。
スタイルガイドに 3 つのルールの解説を加える — Postgres 固有の最も致命的なアンチパターンを捕まえる Layer 2 のセマンティックチェック。
SQL レビューに関する質問
よくある質問。
- SQL レビューとは?
- SQL レビューとは、SQL — 通常はスキーマ変更ですが、データ操作やアドホッククエリも含む — を本番に対して実行する前に検査する運用です。レビューは 3 つのレイヤーで行われます。Lint (構文とスタイル)、セマンティックルール (「すべてのテーブルには主キーが必要」のようなスキーマ理解付きのチェック)、承認付きポリシー (人のレビュワーと、変更をゲートするワークフロー)。
- Lint、セマンティックルール、レビューの違いは?
- Lint は SQL 自身をチェックします — タイポ、フォーマット、方言ミス。セマンティックルールは SQL とスキーマを突き合わせます — 主キーは必要か、破壊的なカスケードを使っていないか、外部キーに索引はあるか。承認レビューは人をループに入れます — ルールエンジンが課題を提示し、DBA や同僚がマージするか判断します。3 つのレイヤーは補完的で、成熟したチームは全部回します。
- SQL レビューは CI/CD にどう組み込めるか?
- SQL レビューは CI ステップとして動きます — 通常 GitHub や GitLab のプルリクエスト上で。Lint とセマンティックルールは自動で実行され、PR コメントやステータスチェックとして所見を出します。承認付きポリシーがマージをゲートします: SQL をデプロイする前に DBA 承認やルールチェックの通過が必要になります。Bytebase のようなツールは 3 つのレイヤーをすべて同じ Git ワークフローに統合します。
シリーズのすべての投稿。
原則。
PostgreSQL。
- 01
PostgreSQL SQL レビュー & スタイルガイド
PostgreSQL のための広範なスタイルとレビューのガイド — 命名、索引、マイグレーションの安全性。
- 02
主キーを必須にする: SQL レビュールール解説
なぜすべてのテーブルに主キーが必要なのか、そしてこのルールをどう強制するか。
- 03
CASCADE を禁止する: SQL レビュールール解説
なぜ ON DELETE/UPDATE CASCADE はたいてい地雷なのか、そして代わりに何をするか。
- 04
CHECK に NOT VALID を強制する: SQL レビュールール解説
PostgreSQL で大きなテーブルにロックなしで CHECK 制約を追加する方法。