jfluteの日記 このページをアンテナに追加

2016-01-01

DBFlute-1.1.1 Released

|

あけましておめでとうございます。

Java8対応のDBFluteの十一回目のリリース。
DBFlute-1.1.1 です。

DBFlute Top
Change Log

八年連続、八回目の元旦リリースです!

「DBFluteフェス2015」での約束、
「また、元旦にリリースします!」
を果たすことができました。

無事、リリースできました

まずは、Maven Central のボタンをぽちっ!

f:id:jflute:20160101142151j:image

これにて、
DBFlute Runtime (jar) が
Central で公開されました。

pom.xml にて、1.1.1 をお書きください。

...

そして、場所を変えて、
DBFlute Engine を publish!

f:id:jflute:20160101162208j:image

これにて、
manageタスクDBFlute Engine が
ダウンロードできるようになりました。

sh manage.sh で 94 (upgrade) を叩いた後、
renewal or regenerate してくださいませ。

…
…

昨年のような物理トラブルはありませんでしたが...
 => DBFlute-1.1.0 Released (2015年) | jfluteの日記

論理トラブルはちょっとあったので、
結局ちょっと年初め早々、大集中力を使いました(^^。

ということで、無事リリースできました!やったー。
(指がかじかんでなかなか動かなかったのですが…)

SchemaPolicyCheck見参!

DBFluteフェスでのパネルディスカッションのときに、
awaawaさんから約束を要求(!?)されたものですね。

ズバリ、

DB設計の checkstyle

と言えます。例えば...

o テーブル名は大文字ベース
o _FLG のカラムは必ずNotNull制約が付く

などなど。

テーブルの作り方、決めごとしていたとしても、
何人もの人でDB設計をまわしてて気付いたら、
「あれ!?」ってテーブルができあがっちゃうとか...

DB設計レビューで基礎的で基本的な指摘ばかりで、
本質的なレビューの時間が少なくなっちゃうとか...

あと地味にあるのが、Identity付け忘れて、
いざアプリでinsertを動かしたときに初めて気付くとか…
(DB変更のブランチもう閉じちゃったよぅ、もう一回)

もう、そうなんだったらー、

DB設計してDBFluteのバッチ叩いて、
ダメなテーブルだったら落ちる

が、できたらいいじゃない?って発想。

f:id:jflute:20160101132922j:image

dfprop に schemaPolicyMap.dfprop を作成して、
以下のように設定をして、Docタスクを叩くとチェックされます。
(JDBCタスクで取得したメタデータを元に)

Maihamaプロジェクトのものを参考にするとよいでしょう。
 => schemaPolicyMap.dfprop | Maihama
map:{
    ; tableExceptList = list:{}
    ; tableTargetList = list:{}
    ; tableMap = map:{
        ; themeList = list:{ hasPK ; upperCaseBasis ; identityIfPureIDPK }
    }
    ; columnMap = map:{
        ; themeList = list:{ upperCaseBasis }
        ; statementList = list:{
            ; if columnName is suffix:_FLAG then bad
            ; if columnName is suffix:_FLG then notNull
            ; if columnName is suffix:_FLG then dbType is INT
        }
    }
}
statementList の if columnName のところは、
他に dbType も指定できます。

then のところは、alias や comment も指定できます。
例えば dbType が datetime だったら、
alias は "日時" で終わるとか指定できますね。

…
...

ただまあ、ちょっとまだまだ機能が足りてません。
大晦日の日に一日で仕上げたので、
とりあえずは土台だけ作り上げたという感じです。
実際に使いながら現場フィットさせて、
どんどん精度を高めていこうかと思っています。

ドキュメントもまだ整備されていません。
詳しくは jflute に聞くか、
こちらのソースを読んでください的な...
ひとまずスピード重視でそりゃぁもうベタベタと。
 => DfSchemaPolicyChecker.java | DBFlute

この機能がもっとリッチになっていったら、
かなりDB設計ライフがハッピーになるんじゃないかなって。
ちょっと2016年、こちら良いものに仕上げたいと思います。

ぜひ、使ってみて、フィードバックを頂ければと思います。
みなさんのDB設計ポリシーを知りたい!
それがまた、DBFluteのパワーになります。

f:id:jflute:20160101162248j:image

そういえば、sp取れましたね

バージョンの sp がどこまで伸びるんだ!?
って心配された方いらっしゃるかと思います。

とりあえず、2015年の丸一年でsp9まで来ました。
ちょうど十回のリリースでした。
(Engineだけのパッチはたくさんありましたが...)

昨年で、チャレンジだったJava8版のDBFluteが、
堅いものになったかなと思っています。
ということで、今年 1.1.1 となりました。
ぜひ、1.1.1 をお試しください。

今年もよろしくお願いします。

f:id:jflute:20160101191242j:image