trac.db が壊れたらどうするか
trac はバックエンドに SQLite を使っていて,何らかの拍子に壊れてしまうことがあります. 壊れると,たとえば以下のようなメッセージを出します.
Trac detected an internal error: database disk image is malformed
で,自分の場合はどうだったかというと,quota over でした…. 要らないファイルを消して,quota 溢れを解消したら,何もしなくても戻りました.
sqlite
まぁでもとりあえず見てみたので内容だけ. sqlite を使えば,SQL をたたいて DB を扱えます. 「apt-get install sqlite」で sqlite が入ります. 「sqlite trac.db」で,中をさわれます.実際以下のことをやってみました.
% sqlite trac/db/trac.db SQLite version 2.8.16 Enter ".help" for instructions sqlite> .tables attachment lock report ticket wiki auth_cookie milestone revision ticket_change component node_change session ticket_custom enum permission system version sqlite> delete from session; SQL error: database is full
まぁこれでピンときて quota を疑ってみたらビンゴでした.
