Githubで管理しているDBスキーマを見るTUIツールを作りました
忙しい人のまとめ
Githubに保管されているtblsで生成されたスキーマをターミナル上で見れるTUIツールを作成しました。
↓動作の様子

主にできることは下記です。
- 複数DBスキーマへの切り替え
- テーブル名orカラム名によるフィルタリング
- テーブルの詳細表示
- カラムの詳細表示
インストールは、ここからビルドされたものを持ってきて自分で配置するか、 下記を使用してください。
go install github.com/harakeishi/trv@latest
インストール後、trv とターミナルで打てば、初回起動時のコンフィグ作成が行われます。

コンフィグ作成後、もう一度trvと打てば最初に示したようにテーブルの情報が見れます。
どうしてつくったの?
自分が働いている環境では、複数サービスを扱っているため多くのDBが存在します。
そのため開発や、お問い合わせ対応などで頻繁に作業するサービスが変わるので作業中よくDBスキーマを確認します。
自身の職場ではtblsを使用してDBスキーマを生成しGHES上で管理しているため、DBスキーマの確認をしたいと思ったら「ブラウザを開いて該当サービスのDBスキーマが置いてあるリポジトリに行き確認する」という作業が発生していました。
そしてブラウザで見る場合、テーブル名で検索して該当テーブルのドキュメントを開いてから、カラム名を検索してと手間がかかっていました。
これらのことを解決したい!!という気持ちで今回のツールを作りました。
インストール方法
インストールは、ここからビルドされたものを持ってきて自分で配置するか、 下記を使用してください。
go install github.com/harakeishi/trv@latest
使用方法
インストール後、trv とターミナルで打てば実行できます。
初回起動時のコンフィグ作成が下記のように行われます。
必要な情報を入力してください。

| . | 必須 | 説明 |
|---|---|---|
| Owner | * | 情報が保存されているリポジトリの所有者 |
| Repo | * | 情報が格納されるリポジトリ |
| Path | * |
tblsによって生成されたドキュメントのパス |
| Token | * | Github トークン |
| IsEnterprise | GHESか? | |
| BaseURL | GHESのベースURL | |
| UploadURL | GHESのアップロードURL |
入力後、再度trv とターミナルで打てば下記のようにDBスキーマが見れます。

アーキテクチャ
基本的な設計は下記です。

できること・できないこと
できること
- 複数DBスキーマへの切り替え
- テーブル名orカラム名によるフィルタリング
- テーブルの詳細表示
- カラムの詳細表示
できないこと
現状スキーマに更新があった場合、その差分のpullを自動では行えません。
詳しくはこのissueに記されています。
終わりに
改善PRや問題の指摘をいただけるとめっちゃ喜びますのでよろしくおねがいします!
Discussion