« ネットのあちら側とこちら側 | メイン | 叩いて、揉む »

2006年05月09日

●SQLiteへ移行

MovaleTypeに変更したものの、ロリポップ鯖のcgi実行力の弱さのためか、エントリ書き込み等のcgiプログラム実行時にエラーが返されることが多い。
最初はectoを疑ったが、ブラウザからのエントリ書き込みでもしばしば同様の現象が起こることから、MTの再インストールも試してみた。
再現性があったり無かったりなので、これはサーバのプログラム実行負荷に対する許容値が低い為だと判断した。
確かにやすいサーバなのだがこういうところに落とし穴があるのかもしれない。

MovaleTypeについては色々とカスタマイズしやすし、カテゴリや日付分けなどメモの整理としてはとても重宝しているのだが、こうも書き込みで頻繁にエラーが出るのでは精神衛生上よろしくない。
iBlogを使用していたときにはアップロードに時間はかかるが、確実に(ローカルでXMLに変換してからアップするので当たり前なのだが)投稿できていたので、不安定な土台にブログを書き込む気になれずとはいっても、原因を深く追求する時間も取れずにズルズル来てしまった。
いっそのことiBlogに戻そうかなどという気弱な考えがよぎったのだが、すでに「賽は投げられた」のである。
これだけ採用実績のあるブログシステムなのだから、あとは自分の環境に合わせた設定と使いこなしが大事なのだろうと機能拡張性も考慮に入れてこのままMovable Typeの問題解決に腰を据えてみた。

色々と問題を切り分けしてどうやらdb内のファイルに不具合が出やすいところまでは突き止めた。
なので、この際データベースエンジンをBerkeley DBでから、思い切ってSQLiteというデータベースに切り替えてみる。

1.MT3.2のdbの作り直し(とりあえず再構築が出来る壊れていない物)

2.「Ogawa::Memoranda」さんのmt-db-convert.cgiをダウンロード。

3.解凍後、編集なしでcgi/mtにアップロード。属性は700。

4.ブラウザで「自分のサイト名/cgi/mt/mt-db-convert.cgi」にアクセス

5.「Source DB Configuration」

DataSource=「サイトパス/cgi/mt/db」ObjectDriver=「Berkeley DB」

6.「Destination DB Configuration」

ObjectDriver=「SQLite」、database「サイトパス/cgi/mt/db/sqlite.db]

7.「convert」ボタンを押せば最後に

Your recommended setting
-------------------------------------
# DataSource サイトパス/cgi/mt/db
ObjectDriver DBI::sqlite
Database サイトパス/cgi/mt/db/sqlite.db
-------------------------------------

と表示される。
8.mt-config.cgi をエディタで開き

DataSource サイトパス/cgi/mt/db を

# DataSource サイトパス/cgi/mt/db
ObjectDriver DBI::sqlite
Database サイトパス/cgi/mt/db/sqlite.db に書き換えて、アップロードし再構築。

9.記事を更新した時にサイトパス/cgi/mt/db/sqlite.dbが更新されていれば成功

さっそく、Movable Type管理画面にログインして複数のエントリを選択して「再構築」をかけてみる。
まえのBerkeley DBではほぼ100%、500エラーが発生していたところである。
20くらいのエントリを再構築しても無事に処理が終わった。
ectoからの投稿・更新もスムーズに行えて、DBエンジンの堅牢性が上がった印象である。
まぁ当たり前と言えば当たり前の状態になっただけのことだけど、今までが酷すぎたために素直に嬉しかった。

まずはめでたしめでたしである。
これで土台に不信感を懐かずに安心して日々のエントリの更新が出来るようになった。
アップしないまでも書き留めていたエントリも少しづつ(公開を意識した文体に書き直す必要があるため)アップしてゆこうと思う。

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)