MT4からMT5へアップグレード[その1]:SQLiteからMySQLへの移行

2010年1月4日

※この記事は2010年1月の記事です。MTの古いバージョンの情報なので、参考程度にお読みください。

MT5では、データベースが「MySQL5」のみという環境条件であるため、MT4でSQLite、もしくはPostgreSQLの場合、まずはデータベースの移行をMT4の環境で事前に行う必要がある。

Movabletype.jpにも、「Movable Type 5 ドキュメント>SQLite / PostgreSQL から MySQL への移行」として移行手順が書かれている。

この移行方法は、

  1. MT4のデータ全てをバックアップ(システムメニュー>バックアップ)
  2. mt-config.cgiの設定を、MySQLへ変更
  3. データの復元(システムメニュー>復元)

上記手順で、データベース移行を行う。

今回、MT4でSQLiteの環境からの移行作業を行った。

1.MT4のデータ全てをバックアップ

・システムメニュー>バックアップ

MT4システムメニュー>バックアップ

「バックアップするブログを選択」については、Movable Type 5 ドキュメントには、”ブログを選択”と書かれているが、ブログ全てを移行する必要があるので、”すべて”を選択して、バックアップを行う。

「バックアップを作成」ボタンをクリックすると、ダウンロードが開始される。

念のため、他の方法でもバックアップをとっておく。

・FTPで、SQLiteデータを保存しているフォルダのダウンロード
 (もし失敗した場合、このファイルをアップロードすることにより復元可能)
・ツール>エクスポートで各ブログの投稿記事、コメント、カテゴリなどのバックアップ

2.mt-config.cgiの設定を、MySQLへ変更

 ObjectDriver DBI::sqlite
 Database ./****/******

 ↓↓↓↓↓↓↓↓

 ObjectDriver DBI::mysql
 Database ****
 DBUser ****
 DBPassword ****
 DBHost ****
 
 ※****は、各自設定値

mt-config.cgiを保存して、アップロード

3.管理URLへアクセスすると、ログイン画面でなく、MT4が初期化される!

データベース設定を変更すると、MTをインストールして管理ページにアクセスしたときの設定ウィザードが開始される。

MySQL移行・アカウントの作成

バックアップというのは、念のための作業ではなく、一旦初期化されるので、退避用のデータであることがここで判明!?→ちょっと、戸惑う・・・

ユーザ名、パスワードなど同じものを入力(別のものを入れても問題ないと思うけど(^^;)→「次へ」.

MySQL移行・最初のブログを作成

デフォルトのまま、設定。

この設定を、バックアップしたブログの環境に設定しても、復元したときはこの設定したブログに上書きされないので注意!
(ここで作成されたブログは、ブログ[id=1]として設定されてしまう、復元されたブログは、id=2以降となる→詳細説明は復元のことろで説明する)

→「インストール」

インストールが開始される。

MySQL移行・MT4インストールの開始

これで、MT4のMySQLデータベース環境が設定される。

データベースの移行ということであるが、MT4のSQLite版→MySQL版への変更を行ったということになる。
例えれば、現在までの作業が店舗改装といったところで、今から改装前に退避してあった商品を、改装後のお店に搬入する作業を行うことになる。

4.データの復元

バックアップデータの復元

システムメニュー>復元 にて、

バックアップしたファイルを復元する。

復元方法として、importフォルダにFTPでバックアップファイルをアップロードする方法も明記されていたが、うまくいかなかったため、「参照」ボタンでファイルを選択して「復元」ボタンをクリック。

すると、公開設定のウィンドウが表示される。

復元・公開設定

ここで、バックアップする以前の環境を入力する。

画面では、「MovableTypeでCMS構築しよう(2)」になっているが、これは初期設定で、「MovableTypeでCMS構築しよう」とすでに設定してあったために、同じ名前なので(2)とMT側で付けられている。
実はブログid=1が納得がいかないで、なんどかSQL移行を行っていたときのスクリーンショット。
id=1を初期設定の「My First Blog」に設定したときは、(2)は付かない)

「次へ」→データの復元が開始される

データの復元

復元が完了する。

5.SQL移行の完了

システムメニュー>一覧>ブログ

ブログ一覧

今回は、1ブログ「MovableTypeでCMS構築しよう」の移行。
初期設定で、設定された「My First Blog」と2つのブログが存在している。

ブログのidを確認すると、移行前の「MovableTypeでCMS構築しよう」は、id=1であったが、
復元すると、id=2になっている。
複数ブログを展開していないので、あまり影響はないが、DBの移行作業を行ったのに、ブログIDが変更されているのは、なんとも納得がいかず、id=1にする方法はないかと先にも述べたが、なんどか移行作業を行ったが
この方法では、復元データはシステム上、id=2以降に割り振られてしまうことが判明。

ブログ ID を任意の数字に変更したい

まあ、こだわる必要はないが(って結構、こだわっていろいろ試行錯誤(笑))、
複数ブログでCMS構築している場合、MTタグに

MTBlogID

というIDによる振り分けをすることもできるので、この設定がある場合は、テンプレートの変更が必要になってくる。

6.MySQLへの移行での不具合について

MySQL移行後の文字化け

再構築を行ったが、特別不具合は見つからなかった。

ただ、一部文字化けが発生。

「5-1」→「5?1」

のように、「-」が認識されていない。

各ブログ記事の該当箇所の変更を行う。

ここまでが、MT4でのMySQLへの移行作業。
MT5へのアップグレードの前準備が完了したことになる。

いよいよMTのインストールへ:【MT4からMT5へアップグレード[その2]:MT5のインストール