Open2

DBマイグレーションを含んだPRではtblsを使ってER図を自動更新する

michiomichio

問題意識

  • テーブル設計を俯瞰的に理解するためにER図ほしい
    • でも頑張って手動で運用していくのにはツライ。どうせ更新忘れ出てきそう
  • これまでプロダクトで使っていたNoSQLと比べ、RDBではテーブル間の関係が更に重要になるため、レビュー時にER図がほしい
  • マイグレーションファイルだけをPR上で見せられてもレビューしにくい。特に既存テーブルへのrelationを持たせたり、relationを持つテーブルを追加するときなど。
    • 全体の俯瞰が頭に無いと、マイグレーション後にどう利用されるのかを理解したうえでのレビューが出来ない
michiomichio

tbls

lintの機能もある

  • 各カラムやindexへのコメントの有無
  • 各テーブルに必ず必要な定義(ex: created_at, updated_at...)
  • など

実行の対象テーブルはフィルタリング可能

https://github.com/k1LoW/tbls#filter-tables

GitHub Actionsへの組み込み

大雑把に以下のステップで動かす

  1. GitHub Actions上でDBサービスを起動する
  2. 起動したDBに対して、DBmigrationを実行する
  3. migration後のDBに対し、tblsを実行
  4. repository内のドキュメントと差分があれば、PRに追加でコミットする

BASEさんのブログで紹介されていたworkflowのサンプルyml
https://github.com/budougumi0617/sample_tbls_actions/blob/v0.0.1/.github/workflows/tbls.yml

生成されたPRのサンプル

参考記事