プロジェクト

全般

プロフィール

QA #297

奈良 裕記 さんがほぼ4年前に更新

 
 h3. ■現象/要望 

 誤削除したチケットを復活したい 

 h3. ■解決策 

 ■前提条件確認 

 誤削除の状況,環境は千差万別。 
 下記条件により、可能な対応は異なります。 

 1.削除したチケットの内容が不明/バックアップデータ有 
 2.チケット親子関係の使用有無 
 3.SCMとの連携要否 
 4.元の番号に復元する必要の有無 

 ■保険&影響緩和策 

 DBダンプを定期的に自動作成しておくと、誤削除時のリカバリが容易になります。(保険) 
 テストサーバにリストアし、内容コピペで十分なケースが殆ど。 
 長期保存不要で上書き対応。 

 チケット削除権限は基本的にユーザに付与しない。却下などでCloseにする。 
 削除必要な場合はadmin作業。 

 h4. ■復旧手順1(RedmineのDB対応の場合) 

 チケットを復旧する 
 http://daily-postit.blogspot.jp/2012/12/blog-post.html 

 具体的な作業内容は↓ 
 Redmineの誤って削除したチケットをバックアップから復活させた話 
 http://shrkw.hatenablog.com/entry/how_to_recover_redmine_issue 

 チケット誤削除時の復旧用SQL(上記のDB操作部分に相当)を作成しました。 
 https://redmine.tokyo/issues/297#note-13 

 テーブル間の関連などは、↓の「Redmineサーバ統合事例」を参照ください。(CM:-) 
 http://www.slideshare.net/y503unavailable/redmine-42182169 

 (要注意)チケットの親子関係を利用している場合は、lft,rgtの調整を行わないと、下記の様なトラブルを招く可能性があります。 
 http://dqn.sakusakutto.jp/2012/04/redmine.html 

 削除してしまったチケットを復活させる。 
 http://rms-099.hatenablog.jp/entry/20101231/1293736805 
 production.logの書込み内容を利用してチケット再作成 
 親子チケットの対応含む 


 h4. ■復旧手順2(RedmineのDBを弄りたくない&バックアップデータ有&SVN連携) 

 チケットを別途作成し、内容を設定します。 
 (バックアップ用データを見ながら or テストサーバにバックアップデータをリストアして内容確認しながらコピペ) 

 SVNのコミットメッセージを変更します。(refs #チケット番号を変更) 

 RedmineのDB修正も必要です。refs #番号の変更 
 changesets , changesets_issues , journals 

 h4. ■復旧手順3(RedmineのDBを弄りたくない&バックアップデータ有&SVN連携&admin操作削減) 

 ・チケット再作成 
 ・SVNの該当変更部分を一旦戻す。 
 ・SVNに再度コミットする時に再作成したチケット番号と紐付ける。 

 h3. ■対応状況 

 作業事例はありますが、心して対応ください。 
 作業前のDBとレポジトリのフルバックアップは当然です。 

 SCMとの連携必要&元の番号に復元する必要が無ければ、 
 チケット新規作成&SVNコミットメッセージ変更を選択した方が安全かもしれません。 

 h3. ■補足 

 Redmine本家でも、誤削除の対応提案チケットが出ており、数十件の要望が出ています。希望者は+1しに行きましょう。。 

 Deleting an issue only marks it as being deleted 
 http://www.redmine.org/issues/1380 
 Soft delete of issues 
 http://www.redmine.org/issues/6666 

 現状ではシャドウコピー機能の無いWindowsファイルサーバですね。 
 (シャドウコピーがあれば、ユーザのリストア依頼は桁違いに減る) 
 !https://unofficial-redmine.org/matomo/matomo.php?idsite=1&rec=297!

戻る