[Seasar-user:17152] Re: 【DBFlute】 バージョン移行時の手順について

kubo [E-MAIL ADDRESS DELETED]
2009年 3月 31日 (火) 03:05:26 JST


久保(jflute)です。

> 上記は下記のように理解しておりますが、あっていますでしょうか?
>
>  「0.4.0」 ⇒ 「0.8.x」 ⇒ 「0.9.x」
>
> 「0.4.0」 から 「0.5.x」 へ移行する必要はなく、
> 「0.4.0」 から 「0.8.x」 へ移行してみるとのこと。

合っています。
無論、律儀に「0.4から0.5、0.5から0.6」とやるのもOKですが、
ひとまず「作業量を計る」という意味合いで、一気に0.8系で
試しても良いかと考えてのことです。

以前のスレッドがそもそもの話題から大分それてしまっている
ようなので、全ての回答をこちらのスレッドで致します。

> 一応別の会社のソースですので、開発環境までは把握して切れておりませんが、
> 自動生成されたCBとEntityだけを継承および参照しているようです。

これは「DBFluteが生成したBehaviorとDaoは全く利用してない」
ということになりますでしょうか?(確認をした方がよいです)

もろもろ読ませて頂きましたが、
ちょっとかなり特殊な利用の仕方をしているように思えます。
少なくともDBFluteが提供する形そのままで利用しているのではなく、
プロジェクト独自のやり方を支援するための一端を補佐するために
DBFluteを利用しているような感じがします。

bpartsがこの構成であることが前提となると、
以下のような(現実的かもしれない)三つの選択肢が考えられます。

<1>
DBFluteは0.4.0のままで、S2Daoだけ1.0.49に上げて、
コンパイルエラーが発生するallcommonパッケージの
テンプレートを修正して1.0.49で動くようにする。
DBFluteをプロジェクト独自に修正することになる。

DBFluteを独自な使い方をしていて、かつ、
0.4.0のDBFluteで機能不足に困っていないのであれば、
bpartsが使っているDBFluteをプロジェクト独自に修正して、
最新のS2Daoに適用させる方が、現実的かもしれません。
但し、S2Daoの内部構造(とDBFlute)に詳しい人じゃないと
作業できないという点はあります。

<2>
DBFluteは0.8.1にアップグレードして、
S2Daoも1.0.49(or 1.0.47)にアップグレードする。
(それ以上はアップしない)

bpartsは「DBFluteを利用している」というより、
「S2Daoを利用しているけど一部DBFluteの生成するクラスを
利用している」と言えるので、S2Daoは外せません。
しかも「DBFluteが拡張したS2Dao」の利用が前提となっているので、
(DaoでConditionBeanを使うということはそういうことになります)
つまり、構造的に0.9.x系にはアップグレードできないので、
0.8.1あたりに(なんとか頑張って)アップグレードして、
S2Daoのバージョンが合わせられるようにするというのも
現実的かもしれません。

<3>
apartsが再テスト可能なら、やはりapartsがS2Daoの
バージョンを下げるというのも現実的かもしれません。
bpartsに対して組織的にアプローチしづらいのであれば、
自由が利くapartsで吸収するのが良いかもしれません。
S2Dao-1.0.40から49までに変わった変更にどれだけ
依存しているのかを調査して、必要であればdao.diconを拡張して、
1.0.40でもその後のバージョンと同じ挙動になるように修正して、
apartsがそのまま動作するようにできればよいかと。
これもS2Daoの内部構造に詳しい人がやる必要があるのと、
S2Containerもバージョン下がりますので、DB周り以外での
影響があるかどうか調査する必要があります。


これ以外にも選択肢があるかもしれませんが、
今までのメールでbpartsの状況を聞いた限りで、
個人的にパッと思いつく限り出してみました。
どういった方法を採用するかはプロジェクトでご判断下さい。
いずれにせよ、担当決めて調査して最適な方法選べるように
マネジメントする必要があることには変わりはないです。


2009/3/31 남종환 <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)さん
>
> 下記の件、了解いたしました。
> ご返信ありがとうございます。
> 以前の返信にお書きましたが、
>
>> 「5. ⇒ 4. ⇒ 3.  ⇒ 2. ⇒ 1.」
>
> 上記は下記のように理解しておりますが、あっていますでしょうか?
>
>  「0.4.0」 ⇒ 「0.8.x」 ⇒ 「0.9.x」
>
> 「0.4.0」 から 「0.5.x」 へ移行する必要はなく、
> 「0.4.0」 から 「0.8.x」 へ移行してみるとのこと。
>
> 大変お手数ですが、
> ご確認よろしくお願いいたします。
>
> 2009/3/30 kubo <[E-MAIL ADDRESS DELETED]>
>>
>> 久保(jflute)です。
>>
>> > 「5. ⇒ 4. ⇒ 3.  ⇒ 2. ⇒ 1.」
>> こちらになります。
>>
>> さらにこちらのリリースノートが参考になります。
>> http://www.seasar.org/wiki/index.php?ChangeLog%2FDBFlute
>>
>> もし、実際にやるのであれば、
>> 一旦0.8.0あたりのバージョンを適用(自動生成)して、
>> コンパイルエラーや自動単体テスト(JUnit)がエラーに
>> なる箇所を全て直して、
>> その後、0.8.8.x系に上げて確認して、
>> そして、0.9.x系に上げて確認して、
>> というようにいくつか段階的にやる方が現実的ですね。
>>
>>
>>
>> 2009/3/30 minami <[E-MAIL ADDRESS DELETED]>:
>> > 南と申します。
>> >
>> > 下記のように「0.4.6」から「0.9.0」へ移行したい場合、
>> >
>> > 1. DBFlute-0.8.8.xから0.9.0への移行時の注意 <./migrate-088xto090.html>
>> > 2. 【略】 <./migrate-0885to0886.html>
>> > 3. DBFlute-0.7.9から0.8.0への移行時の注意 <./migrate-079to080.html>
>> > 4. 【略】 <./migrate-0885to0886.html>
>> > 5. DBFlute-0.4.6から0.4.7への移行時の注意
>> > <../../ja/migration/migrate-046to047.html>
>> >
>> > 実施順番はどうなりますでしょうか。
>> >
>> > 「5. ⇒ 4. ⇒ 3.  ⇒ 2. ⇒ 1.」
>> >
>> > のように順次適用するのか
>> >
>> > 「1.」
>> >
>> > で済むのか教えていただけますでしょうか。
>> >
>> > _______________________________________________
>> > Seasar-user mailing list
>> > [E-MAIL ADDRESS DELETED]
>> > https://ml.seasar.org/mailman/listinfo/seasar-user
>> >
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>


Seasar-user メーリングリストの案内