14日にペーパークラフトを公開して、数日後に違うエントリー(日記)を投稿しようと思いブログ(MovableType)にログインしても、ブログ一覧が表示されないという事態に。
以前にもあった事なのだが、blog_idの認識がうまいことされてないという感じ。
データベースの中身を直接いじろうと思ってもBerkley DBを使用しているのでいじり方がよくわからない。
ということでブログに関するデータをすべてBerkley DBからMySQLに移し変えてみた。
参考にしたのは以下のサイト様。
お知らせ・ブログ復旧作業が終わりました (M. H. Square.)
少し手間取ったものの、キチンと投稿できるようになった。
詳細は以下に。
1.データベースのフォルダ(db)とテンプレートをバックアップ
2.mt-config.cgiを、Berkley DBとMySQLの設定を有効にするように書き換える。
3.mt-db2sql.cgiにアクセス。
しかしここでエラーが出た。
MySQLにテーブルを構築して、MT::Author(日記投稿者)の情報をコピーするまでは出来たらしいけど、MT::Blogの情報をコピーする際に「blog_nameにNullは使えないよ!!」と出た。
Berkley DBのままだったらそんなデータがあった事にさえ気づかなかった…。
そこでとりあえずMySQLにアクセスして、mt_blogテーブルのblog_nameカラムをnullを許すようにしてから再度mt-db2sql.cgiにアクセスしてみる。するとmt-db2sql.cgiがまたテーブルを再構築してしまいカラムの設定がまたnot_nullになってしまったらしい。もちろん同じエラーが。
データベース構造はすべて構築されているらしかったので、mt-db2sql.cgiの中のデータベースを構築する部分(「Loading database schema...」周辺)をコメントアウトして、Nullっぽい物をprintしようとする部分(87行目らへん)もコメントアウトして再度やってみた。
できたー。
mt-config.cgiを、MySQLのみ使用するように書き換えて、MySQLのさっきの部分をnot_nullに戻して、mt_blogテーブル内になぜか増えていた不要なデータを削除して完了。(blog_idは1しか使ってないはずなのに4があった)
また同じようなことが起きませんように。