特に急ぎの仕事もなく、マッタリと業務効率化(キリ、の為にExcel VBAを弄ってて、今日は早く帰宅して三嶋くんのピッチングを一球速報で見るんだZE☆(GAORAは契約していないので、阪神戦はテレビで見れない)と思ってたら某先輩が僕の席に来て「ごめん、ごめん。Redmineのチケットを削除しちゃった。復旧ヨロピク(・ω<)テヘペロ」と言ってきました。
で、状況を確認した所、
となりましたが、このチケットが無くなるのはそれはそれでまずいので、ちょっと試行錯誤してみましたところ、なんとか解決してチケットを復活させることが出来ました(Google先生って凄い)
という事で、メモでも。
○調べてわかったこと
・ チケットのデータはDB上も削除
・ チケットへの書き込みはRedmineのログに残ってる
・ 親チケットに対する小チケットは無い(これが大分助かった)
・ Google先生に聞いた所、DBのテーブルは
- issues : チケットのテーブル
- watchers: チケットのWatcherを指定するテーブル
- user : Redmineユーザ一覧のテーブル
- journals: チケットに対するコメントのテーブル
こいつらを駆使すれば良いらしい、
○やったことのメモ
- mysqlを起動して、DBにアクセス
% mysql -u 'user'
mysql> use 'database'
- チケットのテーブルに新たなチケットを作成
mysql> insert into issues (<ここにはテーブルの列名を記載、列名の説明は
ここを参照>)
value (<ここはテーブルのタグの順番に値を記載する。"NULL"の場合は"NULL"と書く
(←これ忘れるとSyntax Error)>)
※例
mysql> insert into issues (id,author_id,description) value(100,40,"チケットのタイトル")
とすると、
id = 100, author_id=40, descriotion="チケットのタイトル"
というデータが issues のテーブルに書き込まれる。
- チケットにそのチケットに関するやりとりを追加
journals のテーブルに追加していけば良い。追加方法はinsert into を使う。
※ただ今回は日本語処理が上手く行かなかったので、ゴリゴリWebでやりとりを追加。
その後、やりとり一つ一つの更新日時、UserをDBにアクセスして一括変更。
- チケットにWatcherを追加
watcher のテーブルに追加。追加方法はinsert intoで良い。
- 備考
※各テーブルの項目は、
mysql> DESC テーブル名
で確認可能※値を確認したければ
mysql> select * from テーブル名
で確認可能。(*はテーブルの列名を指定することも可能)
と、そんなこんなで午後はずっとRedmine, mysqlと格闘する事になりました。
なんとか格闘が完了した後、Excel AddInの続きを終わらせて帰宅。
結局帰宅したら、プロ野球ニュースの時間でした。
(本日、ベイスターズがありえん負け方したんすよ。で、高木豊さんがプロ野球ニュースの解説で出てたので何言うか楽しみだったのですが、ベイスターズ戦スルーされちゃいましたw)
それにしても。
(´-`).oO(予想外の作業が入ってちょいと疲れたけど、こういうDB弄ったり、VBA書いたりソフト的な事をするのはやっぱり楽しいなぁ)
では。