フューチャー技術ブログ

A5:SQL Mk-2に回帰した話

はじめに

TIG/DXチームの宮崎将太です。

みなさま、ER図を作成するとき、どんなツールを使っていますか?

タイトル通りの出オチですが、数度の輪廻転生を経て私はA5:SQL Mk-2(以下A5M2)を使用しています。ツールをお勧めする記事は多数ありますが、意外と現場のリアルな事情を踏まえた投稿は見当たらなかったので、経験を踏まえてER図作成ツールの比較検討していきたいと思います。

What’s A5M2

真面目な比較検討は後述しますが、文脈の都合上最低限度の情報としてA5M2が何者か記載しておきます。

  • 無料のER図作成ツール兼SQLクライアント
    https://a5m2.mmatsubara.com/
  • 古くは2007年から開発が続けられており、ER図作成ツールとしては超古参。
    内部的には1997年から脈々と開発が続けられています。
    最近(2022/1/23)も大幅なUpdateが加えられました。
    https://a5m2.mmatsubara.com/document/history.txt
  • 対応OSはWindowsのみ(超重要)。
    これが原因で道に迷う方も多いのではないかと思います。
    私が輪廻転生を遂げるきっかけもこの事象が原因です。
A5M2

経緯

そもそも何故ER図作成ツールで輪廻転生しているのか簡単にご説明です。
ざっくり↓の遍歴です。

7年前から5年程WindowsでA5M2使用

当時のプロジェクト標準になっていたこともありA5M2を使用していました。

この時は会社通じてWindowsメインだった(Mac調達もできたけど標準PCではなかった)ので、どこのプロジェクトに行ってもだいたいA5M2だったかなと思います。

※プロジェクトサイズが超大規模になると、テーブル管理がExcelになったり諸々あり。今思うとこの時点でA5M2が浸透していたのは偉大な先人の知恵であり、余計な手間からメンバーを守ってくれていたのだなとしみじみ思います。

2年前にWindows→Macに乗り換え

2~3年前くらいのタイミングで会社標準PCとしてMacが選択可能になったこともあり、メインマシンをMacに交換しました。

開発含む普段の操作は圧倒的にMacの方が軽快でしたが、お察しの通りA5M2が使えなくなりました。

私と同じ理由でMacに交換するメンバーも多く、なんとかMacでDBモデリングをするツールを探そうとし始めます。

ツールに迷走する

都合の良い代替製品は見つかりませんでしが、当時PostgreSQLを使用していたこともあり、pgModelerを使用し始めました。

Mac版もWindows版もあり、かつ自前でビルドしてあげれば無料で使用でき、ぱっと見困りごとはなさそうでしたが↓のような問題が発生します。

  • リレーションを貼るとFK制約が勝手に作成され、かつ削除できない
    細かいですが、こういうちょっとした仕様で余計なコストをくらい続けます。
    DBのお作法的には全く正しいのですが、既に稼働しているシステムの定義には合わせざるを得ないので、DDLにしてから手動で削除するなど対応が必要になります。
    DB純正のツールはこういった事情が多いイメージです。
  • Git上で差分がわからない
    ファイル拡張子は.dbmですが、実体はzip形式のバイナリファイルです。
    Git pushしたところで差分がわからず、いちいちローカルに持ってきて確認するコストが発生します。
  • 根本的に他DBに対応できない
    個人的にはこれが一番モチベーション的に辛かった記憶があります。
    なんとかツール仕様に対応したところで、たとえばMySQLを使用する場合はMySQL Workbenchに乗り換えが必要だったり。
    使用するDBが変わってもツールは統一したくなります。

上記のような問題を解決するため、プロジェクトが変わるたびに頭を悩ませて新ツールに挑戦するのですがなかなか満足のいくツールはありませんでした。

有料版にまで手を出し、迷走と言って全く過言ではない状態だったのを覚えています。

※↓pgModeler操作画面。posgreSQL本家が出しているだけあり、UIはとてもおしゃれ。
pgModeler操作画面

ER図作成ツールに求められる要件

さて、前置きが長くなりましたが、本題です。
前述のような状態からA5M2に転生するのですが、その時考えた内容をまとめておきます。

想定する環境

まず前提として、想定される環境です。
FutureのDXチームだと↓のような状況が多く、対応できるツールを模索していました。

  • Windonws/Mac混在
    • Mac OSはCatalina
  • 中規模以上開発
    • 設計/開発者10人以上
    • エンティティ数50以上
  • DBはプロジェクトごとに異なる
    • PostgreSQL/MySQL/SQL Server/(最近あまりないけど)Oracle
    • RedShift/BigQuery etc…

求められる要件

議論の余地はあると思いますが、求められるであろう要件一覧です。

MUST/WANTは現場によって変わるので、都度フィッティングする必要はあると思います。ほぼ全てMUSTになっていますが、あくまで主観です。

[object Object] undefined

ツールごとの比較

要件をもとにしたツールごとの比較です。

[object Object] undefined

総評

それぞれ以下の評価です。
満点のツールは存在しないので、短所を何かしらで埋めてあげる対応が必要があります。

  • pgModeler

https://pgmodeler.io/
冒頭で記載したPostgreSQLネイティブツールです。
DB依存なのと、ファイル形式がバイナリな点が無視できないマイナス要素。
自力でzip解凍すればxmlが現れるので、頑張れば解析できなくもありませんが、書き換えは厳しそう。

  • MySQL Workbench

https://www.mysql.com/jp/products/workbench/
MySQLのネイティブツールです。
評価はpgModelerと同様。

  • LucidChart

https://www.lucidchart.com/pages/ja
クラウドベースのER図作成ツールで、メインどころのDBには対応しています(MySQL、PostgreSQL、SQL Server や Oracle)。
DB管理としては若干機能不足&静的解析は無理そうなので、シビアな現場にはfitしにくそうです。
速度優先でガンガン変更を本番に反映していくサービスであれば採用の可能性はあるかと思いますが、
どこかのタイミングでしっかりしたツールに乗り換える必要がある印象です。
フリー版もありますが、縛りがきびしいので最低でも月額800円程度支払う必要があります。

  • DBDiagram.io
    コードベースでER図を記載できるwebベースツールです。
    個人で使う分にはありなのですが、GUIでの定義ができない点がチーム展開には厳しいと感じました。
    また、定義中に日本語を使用できなく、コメントで対応する必要がありました。
    無料でも使えますが、バージョン管理など積むと月額9ドル必要です。
  • A5M2

https://a5m2.mmatsubara.com/
件のWindows向けER図作成ツールです。
Macで使えないのと、共同編集不可な点以外は全て要件を満たしています。

MacでA5M2を使う

wineで解決

A5M2の問題はMac版がリリースされていないことですが、wine(Macでexeを使用できるようにするツール)を使用することで解決しました。
https://bottoms-programming.com/archives/a5sql-mk-2-after-mac-catalina.html

日本語が文字化けする問題や、そもそも操作感大丈夫なのか? という疑念がMAXで実験的に使ってみたんですが悪くない触り心地でした。

普通のMacアプリだと保存キーが⌘-Sのところ、Ctrl-Sになっているなど、WindowsとMacのキーバインド問題はありますが、自前の設定でなんとかなる範疇です(Ctrlに置き換える程度で解決)

(2022.02.26追記) A5:SQL Mk-2開発者の松原さんからコメントいただきました。

Arm Mac (M1 Mac) 上で Wine を使ってA5:SQL Mk-2を動作させる方法 というエントリーもぜひ確認ください。

なお、この記事が出るより前にwine上で動かすことにトライしたため、コメントを貰うまで記事の存在に気が付きませんでした。すれ違い..。

A5M2戻ってみて

以下、いざA5M2に戻ってみてざっと感じたことです。

  • リレーション/ドメイン管理の自由度が高い
    良いのか悪いのかは微妙ですが、変な制約なしに思った通りにリレーションやドメイン管理が可能です。
    プロダクトのディープな事情についていける点がとても嬉しい。
  • ファイル直接操作可能
    なんと言ってもこの恩恵が大きいです。
    エディタでgrep置換、スクリプトで論物変換、名称揺れチェック、解析してソースコード生成etc…
    体感、1回りプロダクトの品質が向上したことを感じます。
  • Macで目立ったトラブルもない
    複数プロジェクトで1年程度wine運用していますが、特段のトラブルもなくER図管理ができています。
    環境構築も面倒とまではいかないので、プロジェクトメンバーへの導入で躓くということもありませんでした。

最後に

ER図作成ツールの比較した結果全てを満たすツールが見当たらなかったのでMac+wineでA5M2を使用することにしましたが、そもそもMac対応版がリリースされればもっと幸せだったり、webベースツールでもっと良いものが出ればそちらを使用する選択肢が出てくると思います。

あまり脚光を浴びない割に日進月歩で進化しているので、定期的にウォッチして良いものがあれば別記事を書こうかなと思います。