Edited at

tblsでデータベースドキュメントを生成する(3. CI連携編)



  1. ドキュメント生成編

  2. テーブル情報補完編

  3. CI連携編


tblsにはCIと連携することを想定したコマンドがあります。


tbls diff コマンド

tbls diffは対象データベースと既に作られたドキュメントのdiffを確認するコマンドです。

例えば tbls doc で以下のようなコマンドでドキュメントを生成していた場合、

$ tbls doc postgres://user:pass@hostname:5432/dbname ./dbdoc --add additional_data.yml

docdiff にするだけで既に作られたドキュメントのdiffを確認できます。

$ tbls diff postgres://user:pass@hostname:5432/dbname ./dbdoc --add additional_data.yml

これをCIに組み込むことで、「ドキュメントが正しく更新されているか」をチェックすることができます。

例えば、 .travis.yml などにワンライナーで組み込むとしたら以下のような形で組み込むことが可能です。

script:

- tbls diff postgres://user:pass@hostname:5432/dbname ./dbdoc --add additional_data.yml

Makefileなどであれば以下のようにmake doc make testdoc を作成できます。

doc: ## Document database schema

tbls doc postgres://user:pass@hostname:5432/dbname ./dbdoc --add additional_data.yml

testdoc: ## Test database schema document
tbls diff postgres://user:pass@hostname:5432/dbname ./dbdoc --add additional_data.yml


たったこれだけでtblsとCIを連携することができました。

データベースを持つアプリケーションのCIでは大抵データベースのマイグレーションが走ると思います。

そのあとに tbls diff を使えば、データベースドキュメントの更新テストを合わせて実施することができます。