[メモ] tracからBitBucketへのチケット移行

Trac 0.10.4 で動いている古い課題管理を、BitBucketへ移行する作業を行いました。以下記録。

チケットデータの入っているDBを用意

Trac リポジトリ中の db/trac.db にチケットが入ってます。

trac.db が sqlite version 2 形式なので、まずこれを 3にコンバートします。

sqlite2, 3 の両方を入れてコマンドラインでコンバートもできます。Windows でツールを入れてたので、SQLiteStudio(3.1.0)にて、sqlite2で開いて、[Database]-[Convert Database Type]で3に変換することでコンバート完了。

Bitbucket形式へ変換

以下のスクリプトが使えます。

https://bitbucket.org/secdev/trac2bitbucket

./hoge/db/trac.db がある状態で、

$ python ticket.py -o exported_issues.zip --tracdir hoge

もし次のエラーが出たら、日本語を含むせいなので(たぶん)

TypeError: write() argument must be str, not bytes

ソース中の open(… “w”)を”wb”に変更してもう一度。

Bitbucketへのインポート

Bitbucket上で新しいリポジトリを作成、課題管理を on に。設定メニューから上記の exported_issues_zip をインポートすると、trac にあったチケットがすべて入ります。

既存のリポジトリにインポートすると既存のチケットは全部消えてしまうので注意。この場合は一旦エクスポートし、二つのzip中の.json の内容をマージして差し戻す。issue ID等が衝突するのでマージはスクリプトを書いての作業が必要。

それから、trac上のユーザー名とBitbucket上のユーザー名が違う場合、各ユーザーについて zip 内 db-1.0.json のユーザー名を置換する必要がある。(やっておかないとどこかの他人にチケットをアサインしてしまう)

コメントを残す

メールアドレスが公開されることはありません。