tblsを使ってDDLを管理し始めたのですが、同一のカラム名でカラム名コメントが揺れたり、新規テーブルを作ったときにコメント名を一から入力するのが面倒だったので、Pythonの勉強がてらツールを書きました。
環境
- tbls 1.14.0
- macOS Mojave 10.14.3
- Python 3.6.5
- pipenv 2018.11.26
準備
-
https://github.com/watarukura/tbls-util を
git clone
します。 - 必要なツールを準備します。Macならいずれも
brew
でインストールできます。- tbls
- direnv
-
.envrc
にDBへの接続情報を記載します。↓MySQLのとき
$ cat .envrc
export USER=username
export PASSWORD=password
export DATABASE=dbname
export HOST=localhost
PostgreSQLのときは、connection.ymlのdsnを書き換えてください。
---
- dsn: mysql://${USER}:${PASSWORD}@${HOST}:3306/${DATABASE}
+ dsn: postgres://${USER}:${PASSWORD}@${HOST}:5432/${DATABASE}
docPath: ./dbdoc
v1.14.0でAmazon Redshiftにも対応いただけました!多謝!
---
- dsn: mysql://${USER}:${PASSWORD}@${HOST}:3306/${DATABASE}
+ dsn: redshift://${USER}:${PASSWORD}@${HOST}:5439/${DATABASE}
docPath: ./dbdoc
使い方
-
make doc
でDBドキュメントを生成します。 -
make lint
でテーブル名コメント・カラム名コメントが付与されていない一覧を出力します。 -
make dupcheck
で同一カラム名でカラム名コメントが複数あるもの一覧を出力します。 -
make completion
でカラム名コメントが付与されていないカラムに、カラム名コメントを以下のルールで付与します。- 同一のカラム名と同じカラム名コメントを追加
- カラム名コメントが複数ある場合はそのうちの一つ
- 初出のカラム名の場合は'###'を追加
- 同一のカラム名と同じカラム名コメントを追加
感謝
tblsのおかげでExcelのDBドキュメントを捨てられそうです。