今年からGO株式会社でバックエンドエンジニアとして働いている。
日々の調査や、仕様を調べるときにちょっとDBのクエリを投げたいケースが有る。ただサービスに対する知識や、ER図が完全に頭に入っているわけではないので、クエリを書くのにちょっと手に引っかかりを感じる。
なので、zshで下記のようなものを書いて使っている。
インストールはこんな感じ。
$ brew install k1Low/homebrew-tap/tbls
$ brew install k1Low/homebrew-tap/tbls-ask
zshにこういうのを書いといて、スキーマ更新のたびに dump_tbls_schema
を実行している。
# dbnameは各環境に合わせてください
export TBLS_SCHEMA=~/<dbname>/schema.json
function dump_tbls_schema() {
tbls doc 'mysql://root@localhost:3306/<dbname>' ~/<dbname>
gsed -i 's/zero_or_more/zero or more/g' $TBLS_SCHEMA
gsed -i 's/one_or_more/one or more/g' $TBLS_SCHEMA
gsed -i 's/zero_or_one/zero or one/g' $TBLS_SCHEMA
gsed -i 's/exactly_one/exactly one/g' $TBLS_SCHEMA
}
これを整備しておくとおもむろにターミナルで
$ tbls-ask fooテーブルのid 23098のレコードの最新の決済情報をみたい
とか打つと
select
*
from
foo inner join on foo.id = payments.foo_id
where
id = 23098
みたいなクエリを作成してくれる。世界的なプログラマの小山さんが作っただけあって、よく出来てる。