- バックアップは、FTPでDBファイルをローカルに保存すれば良い
- 移行の際は、そのファイルをアップするだけ
- サーバーのDBファイル設置数制限に左右されない(例:XREAは5つまで)
こうしてみるとまるで良いことばっかりみたいですが、SQLiteのファイル取扱いについては全く判らないので、もし中身が壊れた場合は?とか、中身を修正したい時とか、そういったアクシデントへの対処が不安です。
その辺りはおいおい学習しつつ、って感じで、ともあれやってみようと思います。
いつものように、試験環境はXSASを用いたローカルサーバー上にて。MT3.3にて確認。
バックアップ
ローカルサーバーなので、移行するサイトのファイル全部と、データベースを丸々別のところに保存します。失敗した時は、これらを以前と同様に戻せば済みますね。
データベース変換ファイルを用いて変換する
DBファイルを置くためのディレクトリを作成します。例:MTルート/db (ディレクトリ)
■mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト - Ogawa::Memoranda [Ogawa::Memoranda]
上記にて、データベースを相互変換してくれるCGIスクリプトを配布なさってますので、DLさせて貰います。
解凍した中身の mt-db-convert33.cgi を mt.cgi などが置かれているMTルートと同じ階層に設置します。
そして、ブラウザで先程設置したmt-db-convert33.cgiにアクセスします。
変換コンフィグレーション
アクセスして変換用の画面が表示されたら設定です。左側が現在。右側が変換後の指定になります。今回はMySQL→SQLiteなので、左側(Source DB Configuration)にDB用パスを入力。 右側(Destination DB Configuration)で- SQLite を選択
- 3行目(Database:)に”フルパス”で保存場所とDBファイル名を指定
- 「Convert」ボタンを押す
変換結果画面
私の場合、変換後の結果表示で、モジュールとして作成していた「テンプレート名」のリネームが行われました。こんな事もあるので、必ず一通り眺めて確認を。 「出力ファイル名 が変更されたわけではない」ので、支障はありません。 最下部には、変換後に mt-config.cgi に記載する設定が出力されます。なので、これに沿って mt-config.cgi の内容を変更。- MySQLで設定していた部分をコメントアウト(先頭に”#”を付加)
- SQLite設定部分を出力内容に沿って書く
終了後
mt-db-convert33.cgi を削除します。 DBファイルを保存したディレクトリに、以下の内容のhtaccessファイルを作成して置きます。
失敗談
ここまで全て行って、mt.cgi にアクセスするとDB接続エラーが出ました。
mt-config.cgi の設定では、パスの記述に
http://localhost/サイト名ディレクトリ/MTディレクトリ
を用いているので、これと同様のパス指定を行ったためです。
なので、変換結果画面と同様のディレクトリ指定記述を行ったら、無事接続出来ました。
- MySQL形式・・・1.12MB
- SQLite形式・・・440KB
全て再構築してみて、以上なく終了。サイト確認→OK
実働サーバーへ導入
ローカル実験で留めておこうと思ってましたが、せっかくなのでデータベース変換を実サーバーでも行ってみました。 上記手順で問題なく終了。
MySQLの時より、再構築等の時間が短縮されたように感じます。
ローカルサーバー上でも動作が早くなってます。
あくまで私の体感的な感想なので、状況により色々変るとは思います。
以上。
[参考記事]
■mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト - Ogawa::Memoranda [Ogawa::Memoranda]
■DBコンバート後に受信済みのトラックバックを参照できない問題への対処 - Ogawa::Memoranda [Ogawa::Memoranda]
■MovableType備忘録: MovableTypeでBerkeleyDB、SQLiteからMySQLに移行する [MovableType備忘録]
■小粋空間: Movable Type + SQLite [小粋空間]
[参考記事:SQLite]
■SQLiteをMovable Typeで使ってみる - Ogawa::Memoranda [Ogawa::Memoranda]