親子関係が崩れた時の対処

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運用してて初めて発生した事象なので復旧手順をメモ。

ioDrive for クラウド

iodrive.jpg

gloopsのネットニュースを見てたら、ioDriveってワードが出てきた。

インフラエンジニア(のつもり)でioDriveの存在を知らないなんて・・・と言われそうだけど、
今検討しているサービス用のインフラで、IOがボドルネックになっている部分がチラホラあるので使えそう。

自前で準備すると高そうなので、クラウドで提供しているとこを探すと思うけど。
Fusion-io ioDrive の”非公式”標準価格/販売価格表

現時点でioDrive使っているところを軽く調べてみた。

とかかな。

ほとんどが今年の夏あたりにプレリリース出しているから、今後はもっと提供事業者が増えそうな気がする。

Redmineの期日を強制する

「終了が無いタスクはねぇ!」と上司にお叱りを頂く事もあり、期日を登録する事を忘れてしまう自分の為にカスタマイズ。

Redmineのバージョンは1.3.3

参考にしたのはこちらのサイト様

①期日入力を必須
 app/models/issue.rbの「validates_presence_of」に「:due_date」を追加
    validates_presence_of :subject, :priority, :project, :tracker, :author, :status, :due_date

②期日のところに赤字の「*」を付ける
 app/views/issues/_attributes.html.erbの「due_date」のスタイルのとこに「:required => true」を追加
   <p><%= f.text_field :due_date, :required => true, :size => 10, :disabled => !@issue.leaf? %><%= calendar_for(‘issue_due_date’) if @issue.leaf? %></p>