Trac-0.10.4からTrac-0.11rc1までの間にデータベースのバージョンは20から21に変更されている。アップグレードスクリプトを見るとレポートの中身を変えている (acceptedステータスが増えた対応) だけなので、データベース構造は変わっていない。system表のdatabase_versionを21から20に戻して、`trac-admin resync`すればよさげ。
$ cd $TRAC_ENV
$ sqlite3 db/trac.db
sqlite> update system set value='20' where name='database_version';
sqlite> .exit
$ trac-admin . resync
$
レポートは元ソースを見ながら適当に直せば可。0.10.4からアップグレードしたEnvironmetの場合は、以上終わり。0.11で新規作成したEnvironmentの場合、system表のinitial_database_versionも21から20に落とさなきゃいけないのと、enum表にstatusを入れるのも必要。0.11でTicketWorkflowがプラグイン化されたのを期にステータスの情報がenum表からtrac.iniに移ったので、initenvするときには作られなくなったようだ。
$ sqlite3 db/trac.db
sqlite> update system set value='20' where name='initial_database_version';
sqlite> insert into enum values('status', 'new', '1');
sqlite> insert into enum values('status', 'assigned', '2');
sqlite> insert into enum values('status', 'reopened', '3');
sqlite> insert into enum values('status', 'closed', '4');
sqlite> .exit
$
ものすごくレアなケースの移行だと思うので、たぶん情報価値はないんだろうな。
1 件のコメント:
> たぶん情報価値はないんだろうな。
いえいえ、価値ありました。
いままでソースで入れてたのですが、SourceForgeに0.10系のRPMがあるのを発見して、ダウングレードするか検討しています。
バージョンを追っかけるのがめんどくさくて。。。
コメントを投稿