2012年8月31日金曜日

Redmine 2.0 でチケット情報をCSVインポート

チケットをCSVからまとめて登録するにはredmine_importerというプラグインをよく使うが、ググってもRedmine 1.x対応ばかり・・・・ですが見つけました!Redmine2.0対応

提供者のksauzzさん?ありがとうございます。
有難く使わさせて頂きます。

とりあえずそのプラグインをインストールしてみました(自己責任です)。
※/RedmineROOT/pluginsのパーミッションに注意

●プラグインファイルの取得
ソースはGithubで公開されています。

ブラウザで以下のアドレスへアクセスするとダウンロードできます。
https://github.com/ksauzz/redmine_importer/tarball/redmine2.x

ダウンロードファイル(2012/08/31現在)
ksauzz-redmine_importer-36d5af5.tar.gz

解凍してフォルダ名をredmine_importerにリネーム

●アップロード
redmine_importerフォルダごと/RedmineROOT/pluginsへ

●fastercsvのインストール
fastercsv 1.4~1.5.3までは動作テストされているらしいので、とりあえず1.5.3を指定

# gem install fastercsv -v=1.5.3
Fetching: fastercsv-1.5.3.gem (100%)
Successfully installed fastercsv-1.5.3
1 gem installed
Installing ri documentation for fastercsv-1.5.3...
Installing RDoc documentation for fastercsv-1.5.3...


●マイグレーションの実行
redmine2.xでは若干違うので注意(詳しくはこちら

# cd /RedmineROOT/
# rake redmine:plugins:migrate RAILS_ENV=production
Migrating redmine_importer (Issue Importer)...
==  CreateImportInProgresses: migrating =======================================
-- create_table(:import_in_progresses)
NOTICE:  CREATE TABLE will create implicit sequence "import_in_progresses_id_seq" for serial column "import_in_progresses.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "import_in_progresses_pkey" for table "import_in_progresses"
   -> 0.0284s
==  CreateImportInProgresses: migrated (0.0284s) ==============================

ちなみにプラグインのアンインストール方法
# rake redmine:plugins:migrate NAME=redmine_importer VERSION=0 RAILS_ENV=production
Migrating redmine_importer (Issue Importer)...
==  CreateImportInProgresses: reverting =======================================
-- drop_table(:import_in_progresses)
   -> 0.0841s
==  CreateImportInProgresses: reverted (0.0841s) ==============================
プラグインディレクトリを削除すればアンインストール完了


あとはRedmineを再起動(Webサーバ)

●使い方
プロジェクト>設定>モジュール>Importer チェックONで使用することができる。
またプロジェクト作成時デフォルトで有効にするためには、管理>設定>プロジェクトでImporter にチェックを入れておく





テスト用のCSVファイルが含まれているので試してみたところCSVをアップロードして読み込みは成功したが、確認ボタンでいざ取り込もうとすると結果表示でエラーになってしまう。
少し研究してみよう。

成功した方がいらっしゃいましたら情報お待ちしております。

-----

早速、情報を頂きました!コメントに記載されている通りソースの一部を書き換えることでインポートが成功します。katanaさんありがとうございます。

# cd /RedmineROOT/
# vi ./plugins/redmine_importer/app/controllers/importer_controller.rb
250行目付近
fixed_version_name = row[attrs_map["fixed_version"]]

fixed_version_name = row[attrs_map["fixed_version"]] || ""


# rake redmine:plugins:migrate RAILS_ENV=production
Migrating redmine_importer (Issue Importer)...


Redmine再起動




 
 

3 件のコメント:

katana さんのコメント...

はじめまして。

もう解決しているかもしれませんが、
importer_controller.rb の 251行目あたりを以下のように書き換えることでエラーは回避できますよ。

- fixed_version_name = row[attrs_map["fixed_version"]]
+ fixed_version_name = row[attrs_map["fixed_version"]] || ""

Koji Saito さんのコメント...

katanaさん!情報ありがとうございます。インポートに成功です。実は本業に時間を取られてしまい放置プレイでした(^^;)。

wenbose さんのコメント...

2.1.2で同様の作業をした場合 Internal Errorで止まってしまいました… 一応ご報告までに。

Google検索