※この記事は2010年1月の記事です。MTの古いバージョンの情報なので、参考程度にお読みください。
MT5では、データベースが「MySQL5」のみという環境条件であるため、MT4でSQLite、もしくはPostgreSQLの場合、まずはデータベースの移行をMT4の環境で事前に行う必要がある。
Movabletype.jpにも、「Movable Type 5 ドキュメント>SQLite / PostgreSQL から MySQL への移行」として移行手順が書かれている。
この移行方法は、
- MT4のデータ全てをバックアップ(システムメニュー>バックアップ)
- mt-config.cgiの設定を、MySQLへ変更
- データの復元(システムメニュー>復元)
上記手順で、データベース移行を行う。
今回、MT4でSQLiteの環境からの移行作業を行った。
目次
1.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をインストールして管理ページにアクセスしたときの設定ウィザードが開始される。
バックアップというのは、念のための作業ではなく、一旦初期化されるので、退避用のデータであることがここで判明!?→ちょっと、戸惑う・・・
ユーザ名、パスワードなど同じものを入力(別のものを入れても問題ないと思うけど(^^;)→「次へ」.
デフォルトのまま、設定。
この設定を、バックアップしたブログの環境に設定しても、復元したときはこの設定したブログに上書きされないので注意!
(ここで作成されたブログは、ブログ[id=1]として設定されてしまう、復元されたブログは、id=2以降となる→詳細説明は復元のことろで説明する)
→「インストール」
インストールが開始される。
これで、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以降に割り振られてしまうことが判明。
まあ、こだわる必要はないが(って結構、こだわっていろいろ試行錯誤(笑))、
複数ブログでCMS構築している場合、MTタグに
MTBlogID
というIDによる振り分けをすることもできるので、この設定がある場合は、テンプレートの変更が必要になってくる。
6.MySQLへの移行での不具合について
再構築を行ったが、特別不具合は見つからなかった。
ただ、一部文字化けが発生。
「5-1」→「5?1」
のように、「-」が認識されていない。
各ブログ記事の該当箇所の変更を行う。
ここまでが、MT4でのMySQLへの移行作業。
MT5へのアップグレードの前準備が完了したことになる。
いよいよMTのインストールへ:【MT4からMT5へアップグレード[その2]:MT5のインストール】