【ER_GradlePlugin_04】つくる・迷い・考えた・記録
休むのって大事ですね。
本当は家のことをやる予定だったのですが、
昼まで寝てた → メルクストーリア のイベントを周回 → パニグレ のイベント周回 → skyのキャンマラ → 気付いたら…
な時間を過ごしてました。
アプリゲームはよくやっていますが(今も書きながら アークナイツ 周回中)、一日そんな風にただ遊んで過ごしていると、罪悪感が生まれるのは何故でしょうね。
休日なんだから、好きなことをして良いんですよ。
そうやって自分を甘やかせるのは、自分だけです。
分かっているんですけどね・・。
元々休むことにしていたのに、こういう気持ちになるとは。
おそらく、「やりたいことがそこそこあるのに、何もやっていないのに良いの?」という自分がそう思わせているんでしょうね。
休むのは後悔してませんよ、もちろん。楽しかった!
・・ただ、制作作業に戻るのは億劫になりましたね。
さて、懺悔と反省?もしつつ今日の記録です。
ほぼ一日中やってました。
前回の進捗は、
✅YamlファイルからDDL文を作れる
✅Schemaspy を使う方法を考える
✅Schemaspy が自動的にダウンロードできる
✅ダウンロードしたSchemaspyの使い方を知る
✅Schemaspyを使って、ER図を出力する
⬜出力されたもののデザインを変更できるか確認
⬜出力される情報を設定できるかを確認
⬜いずれかの方法で出力内容をカスタマイズする
⬜最終的に大きめのテーブル構造を利用して問題がないかを試す
⬜プラグインを公開する
⬜公開したプラグインが使えるかをチェック
でした。
Schemaspyの使い方が悪かったのか…?
思った感じにはならなかったので、デザインを調整しようと舵を切ったのでした。
そして、今回の進捗はというと。
✅YamlファイルからDDL文を作れる
✅Schemaspy を使う方法を考える
✅Schemaspy が自動的にダウンロードできる
✅ダウンロードしたSchemaspyの使い方を知る
✅Schemaspyを使って、ER図を出力する
✅出力されたもののデザインを変更できるか確認
⬜出力される情報を設定できるかを確認
✅いずれかの方法で出力内容をカスタマイズする
⬜最終的に大きめのテーブル構造を利用して問題がないかを試す
⬜プラグインを公開する
⬜公開したプラグインが使えるかをチェック
デザインを変更することができました!
ただ、ずーーっと「う~~ん?うまくいかない…」という風に唸ってました。
その軌跡をつらつらと思い出していきます。
ドキュメントを見たら、デザインのフォルダを指定する方法が書いてありました。
「私がやるなら、気になる部分だけを上書きするようにするけど、いけるかな」
と思って、変えたい部分だけを準備し、適応させる形でやりました。もちろん、うまくいきませんでしたw
ドキュメントは基本的に英語で書いてあるので、翻訳しながらやっていたんですけど。ちゃんと書いてありましたね・・。
デザインの全部のファイルを準備してね。と…。
ここで気付いたのは、「全部のファイルを準備」という部分。
https://github.com/schemaspy/schemaspy/tree/master/src/main/resources/layout
(´・ω・)「え、このフォルダの全部準備するの・・?」
・・ダウンロードする感じで実装しましたとも。
作ったものに組み込み形式でも良いんですが、そのテンプレートファイルがうまくいかなかった場合、提供しているやつを編集しなきゃいけないってことでしょ。
「いや、やりたくない。」と思ったので、この形式にしました。
※デザインが良くないなら、テンプレートファイルを自由に編集してね。と、ユーザーさんに多少委ねられるのは楽ですね。
とりあえずダウンロードできた。よし、テンプレートファイルを指定。
ただ、全然うまくいかなかった…。
最初は、絶対パス(ドライブなども含めた住所) でテンプレートファイルを置いていたフォルダを指定していました。それで上手くいって欲しかった。
Caused by: java.lang.IllegalArgumentException: name
at java.base/jdk.internal.loader.URLClassPath$Loader.findResource(URLClassPath.java:600)
URLClassPath.java:600
at java.base/jdk.internal.loader.URLClassPath.findResource(URLClassPath.java:291)
URLClassPath.java:291
at java.base/java.net.URLClassLoader$2.run(URLClassLoader.java:655)
URLClassLoader.java:655
at java.base/java.net.URLClassLoader$2.run(URLClassLoader.java:653)
URLClassLoader.java:653
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.net.URLClassLoader.findResource(URLClassLoader.java:652)
URLClassLoader.java:652
at org.springframework.boot.loader.LaunchedURLClassLoader.findResource(LaunchedURLClassLoader.java:57)
at java.base/java.lang.ClassLoader.getResource(ClassLoader.java:1400)
at java.base/java.net.URLClassLoader.getResourceAsStream(URLClassLoader.java:322)
at com.github.mustachejava.resolver.ClasspathResolver.getReader(ClasspathResolver.java:39)
at org.schemaspy.view.MustacheCustomResolver.getReader(MustacheCustomResolver.java:49)
...
( ゚∀゚)アハハ八八・・・。困った。
ここで、相対パスでやる選択肢が思い浮かべば良かった。
それが全然思い浮かばず、 Issues と呼ばれるバグ報告箇所に英語で書こうとか思ったところで、相対パスでやるといける?と試しました。
いけました。この時間を返して・・!
・・実は、相対パスでもやっていたのですが、その実装をやらかしてました。
ファイルの区切り文字が違った…。Windowsだから「¥」ですよ。。なんで「/」にしているの、私・・。
実装するときは、実行環境の区切り文字を使うようにしましたが、まさかこんな初歩のことで嵌るとは・・・。
まあ、相対パスでできたのでOKということで。
次に、気になっていた部分を出力させないように。
ダウンロードしたテンプレートファイルを上書きさせました。
これは、何の問題もなかった。あっさりと。
本当は、上書きするテンプレートファイルをhtmlファイルにして置き換えるのが定石ですが、とりあえずコード上で修正しました。
そんなこんなで、今日の実装は終了です。
ここまでできれば、8割終わっていると言っても過言ではない。
・・と思いたい。
サンプルのDDL文、どこかに落ちていないかな…。おそらく、明日はそれを探して終わりそうですね。
合わせて、テストも作る予定ですので、今から書いておきますが、明日の進捗はありません!
色々とやっていて気になった部分があったので、
もう一つ、作業を加えます。
✅YamlファイルからDDL文を作れる
✅Schemaspy を使う方法を考える
✅Schemaspy が自動的にダウンロードできる
✅ダウンロードしたSchemaspyの使い方を知る
✅Schemaspyを使って、ER図を出力する
✅出力されたもののデザインを変更できるか確認
✅いずれかの方法で出力内容をカスタマイズする
⬜最終的に大きめのテーブル構造を利用して問題がないかを試す
⬜MySQLやPostgreSQLなどでも使えるようにする ← 🆕
⬜プラグインを公開する
⬜公開したプラグインが使えるかをチェック
新しく追加したものは、設定項目を拡張して公式の設定が使えるようにするだけの予定なので、すぐに終わるでしょう。
そろそろ終わりが見えてきました。
一日に1~2時間作業したとして、一週間もかからずに完成できそうです。
さて、明日の進捗はない予想なので記録を残すか迷います・・。
むしろ、書きたいと考えていた記事に時間を割いた方が、良いかも?とさえ考えています。
もちろん、連日書いていれば見てもらえる機会が増えるとは思っています。
でも、中身が薄いものを見てもらうのは、個人的に気が引けると言いますか…。自分が「つまらないな」と思ったものを、他の人に見せるのは良くないな・・と考えてしまうのです。
・・まあ、これも考えすぎなんでしょうけども。
気が向いたら、何かに詰まったらw
その時は記録として残したいと思います。
読んでくださった方、ありがとうございました。
それでは、また。