MT4(SJIS)からMT6(UTF-8)へ移行するメモ

自社の通販サイトの花大学でMovableType4(MT4)を使っていました。
メーカーサポートはとっくに切れているのですが、通信販売という特性上、移行するタイミングがつかめず。。そのままにしておりました。

先日、お客様の氏名が文字化けしたという不具合をきっかけに調査を始めたところ、ホームページの文字コードがShiftJISの場合、特定の文字が化けることが判明しました。

今、ホームページは文字コードをShiftJisでもEUCでもなくUTF-8を使うことが一般的なのですが、さきほどの経緯で文字コードを変えることが出来ず。。

文字コードを変えるためにどんな作業が必要かというと、
1)MovableType内で使っている文字コードを変換
2)DBに直接書き込みのphpプログラムを修正
3)メール送信プログラムを修正
これを半日くらいでやるには。。。マジで大変。。というかとても面倒な作業なのです。

ですが、MovableType6(MT6)への移行もずっとしたかったし、最近のスマホ事情を考えるとUTF-8への変更はやっておいた方がいい。

ということで決断しました。

まず、何をやらなくてはいけないかというと、MT4からMT6への移行です。
これが最大の目標。移行ができないとMovableTypeでエントリーしているページを1つ1つ移行していくことになってしまいます。これは気が遠くなるし、どのくらいかかるか分かりません。
それで方針を決めました。

1)MT4で使っているMySQLのDBをまるごとコピー。
2)コピーした新しいDBをMT6でアップグレード。

1)のDBのコピーはphpMyAdminを使って行いましたが、問題は文字コードです。
MT4からMT6に移行するには現在のSJISからUTF-8にしなくてはいけないのです。
ここは実はいろいろ調べながら何度も試行錯誤しました。
で、ようやくうまく行ったパターンは、
・phpMyAdminをShiftJisで開く。
・MT4のテーブル群をSQL形式でエキスポート。
・エキスポートしたSQLのテキストファイルをDreamWeaverなどのエディタで文字コードをUTF-8に変換。
・phpMyAdminをUTF-8で開きなおす。
・コピーしたMT4のDBを空にして、UTF-8のSQLファイルをインポート。
するとどうでしょう、MT6に移行するためのUTF-8テーブル群が出来ました!

2)ではMT6でのアップグレードをするわけですが、データベースに今作ったMT4のデータベースを使うようにmt-config.cgiを書き換えます。
そのご、MTの管理画面をたたくとアップグレードがはじまります。
あとは祈るだけ~。

これで文字化けなくエントリーなどはUTF-8で移行できました。
ウチの場合はMTのテンプレートが外部ファイルを指定しているので、そのテンプレートはさすがにShiftJisのままのため、1つ1つUTF-8に文字コードを変更してアップロードする必要がありました。

これでめでたく完全移行終了です。

いやー、当初はどうなるかと思いました。最後は1つ1つテンプレートやエントリーをコピペすることになるのか覚悟をしてましたので。。よかった。

10年目の通販サイトはUTF-8で運用できそうです。
※現時点で移行中です。。


room201508_600.jpg