プロジェクト

全般

プロフィール

気づき #902

奈良 裕記 さんが5年以上前に更新

Redmine本家チケットのコピー/VoteCount集計 

 アドベントカレンダーの21日目です。 

 h1. 作成方法 


 h2. 事前準備 

 ・Redmine本家のアカウント作成(ID/PASSでログイン) 
 ・転送先のサーバインスタンス作成(新規Redmineを強く推奨) 
 ・以下は転送先サーバ上作業 
  ・Redmineをインストール。 
  ・管理者権限の作業用アカウント作成、REST-API有効化、APIキー作成 
   RESTによるWebサービスを有効にする 
  ・Python-redmineをインストール(参考サイト) 
  ・Python-redmineでRedmineにアクセスできることを確認 
  ・本チケット添付のファイルを展開 
   (redmineorg_copy.py , redmineorg_copy_sub.py , authinfo.py , presetting.py) 
   (custom_fields.sql , custom_fields_trackers.sql,trackers.sql) 

 --- 

 h2. 認証情報の設定 

 authinfo.pyに、下記情報を設定して保存してください。 

 redmine.orgのID/PASS redmine_org_id , redmine_org_pass 
 転送先RedmineのAPI-KEY redmine_copy_key 
 転送先RedmineのURL      redmine_copy_url 

 転送先RedmineのURL欄は、IPアドレスではなく、逆引き可能なURLを記入してください 

 --- 

 h2. カスタムフィールド定義の設定 

 現在のRedmine REST-APIに追加機能はありません。 

 カスタムフィールド定義の手動作成は面倒だし、決め打ちにした方が転送作業も楽です。 

 →カスタムフィールド、トラッカー定義については、作成済サーバの定義内容をSQLで直接設定します。 

 注意! 下記登録を行うと、既存のカスタムフィールドとトラッカーの定義が上書きされます。 

 mysqlのログインID=redmine,PASS= pass-word1の場合の実行例 

 mysql -u redmine    -ppass-word1 redmine < custom_fields_trackers.sql 
 mysql -u redmine    -ppass-word1 redmine < custom_fields.sql 
 mysql -u redmine    -ppass-word1 redmine < trackers.sql 

 カスタムフィールド、トラッカーが作成されていることを確認してください。 

 --- 

 h2. Redmine本家のversion,issue_categoriesの転送 

 REST-APIで実施します。 

 ・転送先Redmineにプロジェクト作成(identifier=redmineorg-copy) 
 ・Redmine本家のバージョン定義内容を読み出して、転送先Redmineに設定。 
 ・Redmine本家のカテゴリ定義内容を読み出して、転送先Redmineに設定。 

 注意! 下記登録を行うと、既存のバージョンととカテゴリ定義内容が上書きされます。 

 python    ./presetting.py 

 転送先Redmineプロジェクトに、バージョンとカテゴリ定義が追加されていることを確認 

 補足 

 Redmine本家の定義番号と合わせるため下記実施。 
 ・最大の番号を取得し、ダミー定義作成。 
 ・Redmine本家の定義内容を参照し上書き。 
 (手抜きモードです。未定義分エラー回避のため、不要な項目をコメントアウト。本家削除済分ID残り) 

 --- 

 h2. Redmine本家のチケット転送 

 上記が成功している前提で実行 

 python    ./redmine_org_copy.py 

 数千件実行するとException発生します。 
 上記を再度実行してください。 

 補足 

 再実行は、転送済チケット数を確認し、その番号から転送再開します。 
 途中のチケット削除/アクセス禁止があれば、ずれます。 
 (Redmine本家では実質的に問題ありませんが、普通の環境の場合にはチケット番号の確認必要です) 

戻る