やっと、DBベースのエントリー管理に移行しました。
と、いうのもPostgreSQLベースのデータベースの対応をMovableType 3.2-jaから正式対応したからです。
移行作業は楽なような、面倒くさいような・・・。
とりあえず、データを書き出し。mt-config.cgiの設定ファイルをDBベースの状態に書き換え、データベースサーバーに対応DBを作成して準備します。
PostgreSQLのデフォルトで createuser コマンドでそのまま作成するとパスワードが設定されないため、MovableTYpeでの運用が行えません。-Pオプションを付けてユーザーの接続時のパスワードを設定する必要があります。
設定ファイルを書き換えてから、管理プログラムであるmt.cgiを再度呼び出すと、エントリーの記事データがBerkleyDBから PostgreSQLに移動しているのでまったく登録されていない状態にもどります。公開時のファイル拡張子やアーカイブの設定なども全部が初期化されてしまいます。
テンプレート類などの設定も全て初期化されてしまいますので、いったん別途保存しておくなどして退避しておかなければなりません。忘れた内容はもう一度BerkleyDBに戻ってみなければ判りませんので注意が必要です。
エントリーの内容はカテゴリーも含めて書き出しして読み出すと復帰できるのですが、カテゴリーの階層構造など、一部情報がオリジナル通りに復帰してくれません。元のIDと同じになるようにカテゴリーを作成しておいてから書き出しデータを読み込む必要があります。
ただ、今度はデータベースに全てが保存されていますので完全なバックアップができていると思われますので、サーバー移動などを行っても大丈夫なのではないかと期待しています。
データ管理がBerkleyDBの時よりも、perlで管理する情報が減りましたので、再構築時にメモリ不足で失敗するという事が無くなった上に時間も短縮され、快適になりました。さすがに1年以上続けていると記事のエントリー数も多くなり、再構築も負荷が高く、サーバーの状態をtopコマンドで監視しているとperlで100Mを超えるメモリを使用したりしていて見ているとハラハラしていたのですが、PostgreSQL運用に変更してからはそんな事も無く、サーバーの負荷もかなり少なくなってほっとしています。
まずはこれで様子を見る事になります。
不具合など見つけた方はこの記事にコメントを書き込んでいただければ幸いです。