Movable Type4.2においてDB「SQLite・文字コード:Shift_JIS」から「MySQL5.1・文字コード:UTF-8」に移行作業をしました。
SQLiteにて最近再構築が遅くなってきたのと、Shift_JISである必要性もなくなってきたのと、ベータですけどMovable Type5がMySQL5以上をサポートするということもあって今回移行作業をすることに。またMySQLはコミュニティーツールとして「XOOPS」を利用していましたが、Movable Typeでもコミュニティーブログがありますから必要性もなくなったのも理由のひとつ。
Movable Type4以降はバックアップと復元機能がありますからそれほど時間はかかりませんが、問題は文字コード。いくつも移行作業をやってきましたが、これが結構やっかいです。
移行作業は以下の流れでした。
1. MySQLにてDBを作成。
2. 移行用のMovable Typeを別の場所で、現状あるものと同じ構成で用意。
3. 移行元のMovable Type、システムのバックアップからブログごとにバックアップ。
ブログIDを事前に調整する必要がある。アクション、ログ、使用していないタグは削除しておいた方が良いかもしれない。
4. バックアップファイルをエディターより、UTF-8として保存。テンプレートをファイルとして保存している場合もUTF-8として保存した方が良い。
5. 移行先のMovable Typeのインストール、設定ファイル「mt-config.cgi」別に保存。
6. ブログIDのことも考慮し、システムの復元より、ブログごとに復元。
ここでエラーが起きる可能性がある。主に文字コードによるエラー。エラーがあった場合そこで中断し、復元作業を停止してしまいます。問題があった箇所を対処し、ブログIDのこともあるのでDBを削除。4まで戻る。
私の場合、タグの中でエラーがありました。エラーがあったタグ項目ごと削除しました。
7. テンプレートの文字化け、プラグインの設定など一通り確認して問題なければ、どのページでもいいので1ページ再構築。
別のフォルダで構成していた方が良いと思いますが、私の場合は用意せず上書き。問題があれば修正。
8. 移行元のMovable Typeディレクトリーの名前を別名にし、移行先のMovable Typeディレクトリーの名前を移行元の名前に。
9. 全ブログ再構築で終了。
10. 私の利用しているレンタルサーバーは「さくらインターネット」で、MySQLの自動保存がないので、シュエルスクリプトを作成、CRON設定で対応。
全再構築ができるようになりました。
それまではアーカイブごとにやってました。途中で「Internal Server Error」で落ちてましたから。
快適です。
シェルスクリプト参考
MySQLのCRON自動バックアップ - overseas*fun
最近のコメント