Redmineのチケットの親子関係が崩れて、親子の変更どころか更新すら出来なくなった時の対応のメモ。
mysql> select id,parent_id,root_id,lft,rgt from issues where id=2544;
+——+———–+———+——+——+
| id | parent_id | root_id | lft | rgt |
+——+———–+———+——+——+
| 2544 | 2541 | 2520 | 36 | 36 |
+——+———–+———+——+——+
1 row in set (0.00 sec)
id=チケットのID
parent_id=直接親子関係になっているチケットのID
root_id=最上位の親チケットのID
lft,rgtはよくわからないけど、ググるとチケットのlft, rgt が、親チケットのlft, rgt の範囲内に入っていないとダメらしい。
なので、強制的に親子関係を解除する。
update issues set parent_id=null,root_id=2544,lft=1,rgt=2 where id=2544;
どんなタイミングで発生するかは分かんないけど、Redmine運用してて初めて発生した事象なので復旧手順をメモ。