【ER_GradlePlugin_01】つくる・迷い・考えた・記録
プロフィールにも書いていますが、
仕事でも趣味としてもプログラミングをしちゃうような、モノづくりが好きな変わった人
なんです。今も、趣味の時間でプログラミングをしています。
これらの記事は、誰に向けたものだろう…と思いつつ。
日々の学習記録とかと同じ感じで思ってもらえれば幸いです。
今作っているものは、 gradle のプラグインです。
オープンソースで公開しようとしています。
プログラミングを始めるための上記の記事でも、gradle を推しました。
その記事で出した、gradle の中で使える道具を作っています。
何を作っているのかと言うと。
・Yamlファイルで データベース設計が出来る。
・Yamlファイルから、DDL文が出来上がる。
・DDL文から、ER図が出来上がる。
ざっくりとした説明になりますが、
データをず~っと保存をする時に、
どういう風に整理をして収納をするのか?
そのための間取り図みたいなものを作るための便利道具
を作ろうとしています。
データベース設計をしたことがある多くの人は、
A5:SQL Mk-2 を利用しているかと思います。それに近いものです。
なんでこの道具を作ろうと思ったのか?
データベース設計をしたものを、 Git で管理したいから。
それだけです。
Git には、大きい容量のファイルを扱う方法もあります。
Git LFS というやつです。でも、あんまり使いたくない…。
A5SQL を使っても良いけど、変更点分かり辛すぎ…。
そんな私のために、作っています!
ただのテキストファイル(Yamlファイルですけど…) が、
Gitで管理するのにとても楽です。変更点の確認もしやすいはず。
大体、データベース設計の最終的に必要なものは、
・DDL文のSQLファイル
・ER図
だと思っています。
ですので、必要最低限のものを作ることができる。
且つ、開発者目線で管理もレビューもしやすい。
そんな私得!というものを作っています。
※ テーブル定義書が必要と言われたら、ER図 or yaml で大丈夫かを交渉したいですね。
※ それでも駄目なら、A5SQL を選択するしかないかと思います。
今の進捗
上記の記事でも書いたんですけど、
マガジンの存在と、その有用性を知らなかったんです・・。
そんな時から細々と作っていました。
合計時間的には、4人日かかっていないぐらいですね。最初から記録を書けばよかった…。
現在の進捗は、
✅YamlファイルからDDL文を作れる
⬜DDL文から ER図を作れる
です。半分終わっちゃってます・・w
今は、 ER図を SchemaSpy というものを使って出力してみよう!
というところです。
試しにjar ファイルをダウンロードしてみましたが、困った。
SprintBoot の実行可能jar で、組み込みできない・・。
Gitのソースコードをforkするなどしようかと思いましたが、
・内部で利用しているクラスは、ガッツリSpring依存
・@Component付きのクラスに、 private の @Autowired系(コンストラクタなし)
うん、組み込めない…。
まあ、普通はそんなものだよね、分かる分かる。
この後の作戦
https://github.com/schemaspy/schemaspy/issues/157
こんな Issues も見つけた。
内容をざっくり見ると、アプリケーションなので対応する予定はないよ。と…。
うーん、forkしたくない…。組み込みたくない……。
理由としては、最新を追うことが 100%無理。メンテナンス工数がかかりすぎる。そんなにメンテナンスしたくないw
なので、こうすることにしよう。
1. schemaspy の最新jar をダウンロードする
2. ダウンロードしたjar ファイルをgradle経由で実行する
できる、はず・・・・・・。
今回の記録はここまで。読んでくださった方、ありがとうございました。
次回は、実現性も含めて調査しなければ…。
記録を書いているとコーディングができなくなるので、1時間ぐらいの作業記録的な感じで、今後書いていくかもしれません。
それでは。