見出し画像

【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時間ぐらいの作業記録的な感じで、今後書いていくかもしれません。

それでは。


1     次へ



いただいたサポートは、今後の創作活動に役立てさせていただきます。