Redmineのチケットを一括してプロジェクト移動させる。

普段チームのタスク管理はRedmineのチケットで管理しています。あるシステムの運用を引き継いだ際、それに関する依頼作業もチケットで管理するようになりました。最初は良かったのです。メーリングリストや個人宛のメールだけでのトラッキングをやめたので作業漏れは無くなりました。が、しばらく運用して大変な事になりました。Redmineの一つのプロジェクトで全て管理していたので、チームのタスクが埋れてしまい探すのがめっちゃ大変になってしまいました。そこで、依頼作業はサブプロジェクトとして分ける事にしました。分けるのは良いのですがどうやって既存のチケットを移行させるかが問題です。一つのチケットだけなら”移動”というリンクのクリックでプロジェクトを移動することができます。でもチマチマ一つずつ移動なんてやってられません。そう思ってググる先生に聞いてみたら、 CSVでのインポートプラグイン があったので、これを試してみました。

手順的には公開元に書かれている通りではあるのですが、

$ http://www.skyarc.co.jp/engineerblog/download/redmine_importer.0.0.3.zip
$ unzip redmine_importer.0.0.3.zip
$ sudo cp -a trunk $REDMINE_HOME/vendor/plugins/redmine_importer
$ sudo /etc/init.d/apache2 restart

で反映できます。

肝心の移動させる対象のチケットはカスタムクエリで表示させた後、CSV形式でダウンロードします。そしてブロジェクトのタグをサブプロジェクトのタグにsedコマンドで一括変換し、

$ sed -i 's/before-tag/after-tag/g' export.csv

メニューに表示されるCSV importからexport.csvインポートすれば終わりです。同じチケットは重複してしまうのかと思ってましたが、実際にはチケット番号をキーにしてプロジェクトタグだけを一括updateしているみたいですね。