私が初めてMovableTypeをインストールし、最初に使用していたサーバーはロリポップ!ですが、初めてインストールした当時は「データベース」がMovableType本体とは別にあるということが理解できていませんでした。(^-^; そんなわけで、ロリポップ!のインストールマニュアル通りに設置してBerkeleyDBを使用していましたが、MovableType3.2にバージョンアップしたときに再構築エラーが起きるということでデータベースをSQLiteに変更しています。
データベースを移行する前にデータベースのバックアップをとります。私が使用しているSQLiteはmt/dbディレクトリごとダウンロードすればバックアップできます。これは先日MovableTypeを3.2から3.33へバージョンアップしたときも同じ作業をしました。FTPソフトでサーバーに接続して右側(サーバー側)から左側(自分のPC側)にドラッグ&ドロップするだけなので簡単ですね。わかりやすいようにデスクトップにダウンロードしておきます。
私が現在利用中のサーバーロリポップ!にMySQLのデータベースを作成します。
ユーザー専用ページへログインし、データベース作成をクリックします。
作成するサーバー : デフォルトのままでOKです。
接続パスワード : 任意のパスワードを入力します。
記入したら「作成」ボタンを押します。これでデータベースMySQLが作成されました。接続パスワード : 任意のパスワードを入力します。
参考にさせていただいたサイト「MovableType備忘録」様で紹介されていたMovable TypeのデータベースをDB間で相互にコンバートするCGIスクリプトを使わせていただくことにしました。
スクリプトの作者 : Ogawa::Memoranda
mt-db-convert.cgiの入手先 : http://code.as-is.net/wiki/MT_Database_Converter.ja_JP
mt-db-convert.cgiの入手先 : http://code.as-is.net/wiki/MT_Database_Converter.ja_JP
zipファイルをダウンロードして解凍したら、FTPソフトでアップロードします。私の使っているMovableTypeのバージョンが3.3なので「mt-db-convert33.cgi」を「mt.cgi」などと同じディレクトリにアップロードし、実行パーミッションを「700」か「755」に設定します。
ブラウザでアップロードした「mt-db-convert33.cgi」にアクセスします。画面左側が現在のデータベースSQLiteの情報が記載されています。右側に移行後のデータベースの情報を入力します。(下図参照)。必要項目を入力したら「Convert」ボタンを押します。
残念ながら、私の場合このまますんなりとコンバートが完了しませんでした・・・。
コンバートが始まると下の図のように「・・・・・・・・・・」がどんどん伸びていきます。そしてデータごとに変換が完了すると図の赤文字のように「(数字 objects saved.)」と表示されて次のデータの変換が始まります。
しかし、「・・・・・・・・・・」の途中で止まってしまった場合変換が完了していないので、完了するまで次の手順でやり直します。私は後でphpMyAdmin で正しく移行されたかを確認するために変換されたオブジェクト数をメモっておきました。
コンバートするためにアップロードした「mt-db-convert33.cgi」の内容を編集します。
編集箇所、方法は「MovableType備忘録」様で詳しく解説されてますのでそちらを参考にしました。すべてのデータが変換されるまで何度でもブラウザで「mt-db-convert33.cgi」にアクセスして「Convert」をします。私の場合、特にエントリーは何度も失敗して大丈夫かな~と不安になりましたが、何とかすべて変換することができました。
ロリポップのユーザー専用ページからWEBツール、データベースをクリックして、作成したデータベースを表示させます。「phpMyAdminを開く」をクリックするとログインしてデータベースの中身を見ることができます。データ移行が確認できたら、mt/mt-db2sql.cgi、mt/mt-db-convert.cgi はサーバ上から削除します。
最後に「mt/mt-config.cgi」 を編集してアップロードします。編集箇所と記述例は「MovableType備忘録」様で詳しく解説されてますのでそちらを参考にしました。 ドキドキしながらMTの管理画面にアクセスすると、無事いつも通り管理画面を開くことができました!
CGIスクリプトの作者のOgawa::Memoranda様、詳しい解説をしていただいている「MovableType備忘録」の管理人bzbell様のおかげでスムーズにデータベースの移行ができました。
追記:結局データベースがSQLiteでもサーバー移転できるらしいとわかって、またMySQLからSQLiteに戻しました(^^ゞ