ユーザのみなさんに、DBFluteのサブ機能について相談です。 (DBFluteユーザの集いのGoogleGroupの方で関連した 議論がありました。この件はブログに載っけます) ここでいうサブ機能とは: o AlterCheck o SchemaSyncCheck o LoadDataReverse といった、サブでありながら存在感の強いやつらです。 現状は、これらは何かDBFluteタスクの 一部機能として提供されています。 o AlterCheck: ReplaceSchemaで動作 o SchemaSyncCheck: Docタスクで動作 o LoadDataReverse: Docタスクで動作 これには、理由が幾つかあります: A. その頃は、Manageタスクがなかった -> バッチファイルは増やしたくないという前提 B. Windowsだとコマンドラインしづらい -> Manageタスクは ctrl + shift + R で叩けない C. 時々利用なので、既存タスクの一部でいいかなと -> SchemaSyncCheck, LoadDataReverse さらに AlterCheck は、実際にDBに対してReplaceをするので、 それを意識させたいという思いもあり ReplaceSchema の一部機能と。 SavePreviousするときに、フラグファイルを作成して実行する 必要があり、これがなんともかっこわるい!? ですが、 SavePreviousは気軽に実行できる必要性はないし、 いつかEMechaで右クリックからできるようにできればなと。
これらの機能を提供し始めて、少し最初の想定と違うのは... AlterCheckはミラクル機能なので、もっとわかりやすい方がいいかも!? 画面から登録したデータをテストデータにって感じで、 LoadDataReverseがわりと頻繁に利用できる。 でも、Docで有効にしっぱなしだと、毎回毎回エクセルファイルが SVNのコミット対象になってうっとおしい。 SchemaSyncCheckも、基本的にAlterCheckやっていれば あまりに使わないですが、そうでない環境では定期利用したい!? そして、紺種リリース予定の0.9.9.7Bですが、これら機能を Manage タスクで独立して実行できるようにしました。 sn manage.sh save-previous sn manage.sh alter-check sh manage.sh load-data-reverse sh manage.sh schema-sync-check 細かく制御したい現場でどうにでもできるようにと。 (これを呼ぶバッチを作ってしまえばOK) ただ、DBFluteのメインの「使い方」というところで少し考え直す タイミングかなと。というか、もう今このタイミングしかないと。 なんといっても、サブ機能という感じで作った機能が、 かなり便利でインパクトの強い機能となってしまったと。 DBFluteのプロモーション的にも重要な位置づけになっています。 なので、わかりやすさと使いやすさがそれなりに求められると。 (マイナー機能なら全然今のままで構わないですけど)
ちょっといろいろな選択肢があるかなと:A. いまのまま (ReplaceSchemaでの実行メイン) -> やはりみんなWindowsだから -> 既にユーザもいるし、ダサくても新しいタスクにはしない -> Manageはコアユーザ向け -> DBがReplaceされるんだよ意識を残す B. Manageタスクおんりー (ReplaceSchemaでの実行廃止) -> 入り口は別の方が新しい人にもわかりやすい!? -> サブ機能は全部コマンドの方がわかりやすい!? -> プロモーション的にコマンドの方がかっこいい!? -> コマンドにしていれば自由が利く A. いまのまま (Docでの実行メイン) B. Manageタスクおんりー (Docから完全独立) -> 定常利用するならバッチ作って いまの気持ちとしては、 思いきって「B」にしちゃおうかなと思っています。 DocやReplaceSchema: -> DBFluteの通常業務 Manageタスク (AlterCheck, LoadDateReverse): -> 時々使うサブ業務 というような位置づけにしてしまった方が 理解してもらいやすいのかなと。 (今後のDBFluteのさらなる展開も考えて) ちょっと、分析中でまだまだ色々と考えられるのですが、 もしユーザーの方で意見のある方がいれば声を聞きたいと。