TracのTicketをExcelやCSVからインポートするプラグイン
TicketImportPlugin – Trac Hacks - Plugins Macros etc.
巷でちょっと話題になっている。ちょうどまとめて大量にTicketを登録する必要があったので試してみた。
Trac Lightningの最新(ベータ版?)には含まれている様だが、自分の環境は純Trac(0.11) on Linuxだったのでpluginを手動でインストールする。
Machine-wide installation(サーバのpython環境にインストール)はカンタン。
(for Trac0.10) easy_install http://trac-hacks.org/svn/ticketimportplugin/0.10 (for Trac0.11) easy_install http://trac-hacks.org/svn/ticketimportplugin/0.11
Trac環境(インスタンス)毎にインストールしたい場合はTicketImportPlugin – Trac Hacks - Plugins Macros etc.からeggをダウンロードして、Trac Adminから登録すればよろし。
Excelファイルを扱いたい場合は、別途xlrdというライブラリが必要とのこと。
http://pypi.python.org/packages/source/x/xlrd/xlrd-0.6.1.zip(バージョンは最新ではないかもしれないので注意)をダウンロード、解凍し、xlrdディレクトリをpythonのsite-packagesディレクトリにコピーする。python -c 'import xlrd'を実行してエラーが出なければOK。
Tracを再起動。Trac ADMIN UIのManage Pluginsページより、TicketImportを有効にする。
これで上部メニューにImportが追加される。
使用方法はインストールしたTicketImportのページに書かれている。
ざっと要約。
ワークシートは以下を含む必要がある
- 最初の行にimportするフィールド名
- 以降の行にimportするデータ
フィールド名として指定できるのは・・・
The fields must be Trac fields. The valid fields for this Trac instance are: ticket or id, summary, reporter, owner, description, type, status, priority, milestone, component, version, resolution, keywords, cc, estimate, billed, remain, and..
おおっ!estimate, billed, remainてのは別pluginで追加したカスタムフィールドなんだが、対応している!
カスタムフィールド対応も嬉しいけど、静的ページだと思っていたヘルプが、カスタムフィールドを見て動的に表示されていたことに、ちょびっと感動(^_^)
使用できるフィールド名
- ticket or id
- summary
- reporter
- owner
- description
- type
- status
- priority
- milestone
- component
- version
- resolution
- keywords
- cc
- 各カスタムフィールド
フィールド名は、大文字小文字は同一視される。
必須フィールドはticketまたはsummary。これがキーになるのだな。
- summaryをキーにする場合・・・同じsummaryのticketが存在すればフィールドの更新、存在しなければ新規ticketの追加。
- ticket(id)をキーにする場合・・・同じticket idが存在すればフィールドの更新、ticket idが空ならば新規追加。存在しないticket idが指定された場合はエラー。
summaryをキーにすると、同じsummaryのticketを管理出来ない。自分の環境では重複summaryが存在するのでticketフィールドを使用しなければだわ。。
カスタムレポートをCSVでエクスポート→編集→インポートの流れで大量ticketの更新も簡単に出来てイイ!(^_^)b
では、さっそく試してみよう。
↓みたいなエクセルを作成
ユーザーにメールアドレスが入っているので黒く塗りつぶしてます。
ちょっとした事情でsummaryに重複した値が入ってるので、ticket列が必要。新規追加なのでticket列は空。このファイルを[File to import:]で選択して、[Upload file and preview import]ボタンを押下!
↓みたいなpreviewが表示される。
指定されていないフィールドは、Tracで設定されているデフォルト値が設定されるらしい。デフォルト値はTrac Admin UIで指定可能。
previewみてOKならば[Execute import]ボタンを押下!
あっさり成功!(^o^)/
こりゃ便利だ。。
ちなみにチケット更新時にはticket_changeテーブルもちゃんと更新されているみたい。Change Historyにも「Batch update from file
採用!(^o^)b