GoとMySQLを使ったWebアプリケーションの便利ツール
こんにちは!株式会社Finatextで証券事業のバックエンドエンジニアをしております、@Goryudyumaです。
今日は、私が運用に関わっているGoとMySQLを使ったWebアプリケーションで活用している便利ツールを紹介します。
公開できる部分だけを抽出したリポジトリも用意しましたので、ぜひ参考にしてください。
👉 https://github.com/Goryudyuma/techblog-go-mysql-tools
この記事はFinatext Advent Calendar 2025 2日目の記事として書かれました!
sql-migrate
Go製のシンプルなマイグレーションツールです。
CLIとして実行することもできますし、ライブラリとして組み込むことも可能です。
GoのEmbedding機能を使ってマイグレーションファイルをバイナリに組み込めば、デプロイ先の環境に依存せず実行できます。
tbls
データベースのドキュメントを自動生成できるツールです。
ER図やDBスキーマをGitで管理でき、ER図はMermaid記法で出力するのがおすすめです。
GitHubはMermaidを標準対応しており、画像ファイルを直接埋め込むよりも差分が見やすくなります。

tblsにはLint機能もあり、とくに requireColumnComment が便利です。
これは、カラムにコメントがない場合に警告してくれる機能で、長期間運用されているサービスでありがちな「使われ方がわからないカラムが生まれる」問題を防いでくれます。
また、requireColumns によって created_at・updated_at の存在を強制することも可能です。
データの追加・更新日時は調査時に役立つことが多いため、基本的には入れておくのがおすすめです。
もちろん、固定データテーブル(たとえば都道府県マスタのようなもの)では、例外設定を行えばこれらのカラムを除外できます。
gorm/gen
gorm.io/gen を利用して、実際のデータベーススキーマからGoの型を自動生成しています。
型変換やnullable対応、独自の便利メソッド追加なども柔軟に設定できます。
実データベースから生成することで、モデルとスキーマの不整合を防げるのが最大の利点です。
diff-pr-management
ここまで紹介したツールで、ドキュメントやコードを自動生成できるようにしていても、「生成し忘れ」や「git add し忘れ」で不完全なままマージされるリスクがあります。
人間はミスをする生き物なので、こうした部分は機械に任せましょう。CIを整備するのが大切です。
そこで活躍するのが diff-pr-management です。
あなたがPull Requestを作ると、CI上でブランチをcheckoutし、自動でコード生成を実行します。
もし生成結果とあなたが作ったPRに差分があれば、自動でその修正を行うPR(PRを修正するPR)が作られます。
作られたPRをマージするだけで、あなたの作ったPRは常に正しい状態に保たれます。
以下のようなPRを自動で生成してくれます:
おわりに
以上、Go×MySQL環境で便利に使えるツールを紹介しました。
参考コードを見ながら、ぜひ取り入れてみてください。
他にもおすすめツールがあれば、ぜひコメント欄で教えてください!
また、株式会社Finatextでは、開発体験を一緒に改善してくださるエンジニアを募集中です。
カジュアル面談も絶賛募集中です!
ここまで読んでくださり、ありがとうございました!
Discussion