ずっとやろうやろうと思って伸ばしのばしにしてきた、某ブログのMT3.X→4.28への移行が終わりました。
いやあ、久々に苦労しましたねえ~汗
これもね、最終的にはMT5にする予定なんですよ。なので4.28というのは通過点にしか過ぎないのですが、いやはや疲れましたorz
実は何度も失敗したのですが、それでも何とかなったのはまだSQLiteだったからですあせる
以下、私の試行錯誤のヒストリーを晒しておきますので、何かのお役に立てれば…。
※かなり端折って書いてるので、ビギナーさん向きじゃないです、ごめんなさい。

【準備】とにかく入念にバックアップを取る。
MTフォルダも出力フォルダもバックアップを取る。
SQLiteだとDBのバックアップも取りやすくていいですねニコニコ
このsqlitedbを何度もアップし直す羽目になるとは…知るよしもない管理人であった。

さてさてまず、
【1】現行のMTとは別名のフォルダを作り、新しいMT4.28(以下MT4)をアップする。

【2】出力先も現行とは変えておくため、別名の出力先フォルダを作成しておく。
※出力が上手くいったことを確認してから、現行の出力先へ変更します。失敗したら恐いもんね。

【3】現行のMTからコピってきたSQLiteのデータ(以下sqlitedb)をMT4のフォルダへアップする。

【4】現行のMTからコピってきたmt-config.cgiを新しい環境に合わせて書き換え、MT4へアップする。
特にCGI Pathとか気をつけてくださいね。

【5:死亡フラグ】MySQLに移行するため、「MT Database Converter 」をアップし、実行。
…あれー? なんか「Can't call method "site_path" (略)」とかいうエラーが出たぞ…?
結局解決策は見つからなかったものの、現行環境でサイトパスをフルパス指定してないのがマズイのでは?と、当てずっぽうで現行の設定をフルパスに変更。
再構築した後、現行から再度コピってきたsqlitedbをアップする&mt-db-convert.cgiをアップし直す→実行で上手くいく。
(行き当たりばったりでスイマセンあせる

mt-db-convert.cgiが教えてくれる新しいMySQLの設定をMT4のmt-config.cgiに反映させて、サインイン!
やったあ、入れたあぁ!!o(^▽^)o

しかし、RightFieldsのデータが入ってない。Σ(=°ω°=;ノ)ノ

そう、すっかり忘れてたけどMT3.XってカスタムフィールドじゃなくてRightFieldsプラグインなんですよねー…(遠い目)。

【5】というわけで、MySQLへの移行は後回しにして、SQLiteのままRightFieldsの値を移行する作戦へ変更。
MT4のmt-config.cgiをSQLite用にまた戻して、公式サイトが出している記事とツール を元にプラグインを入れると…
素敵なことにフィールドのデータが入りました~流れ星
ところで、このカスタムフィールド、テンプレートタグはすべて小文字で入るようです。
私は元々大文字混じりで指定していたので、テンプレートも大文字混じり。結果、分岐の判定などが上手くいきませんでした。なのでテンプレート内のカスタムフィールドの箇所を書き換え。

で、ここでやっちゃいけないこと。
カスタムフィールドのテンプレートのタグ名とか変えるな。
いや、普通変えませんけどね…ちょっと種類を「アイテム」から「画像」に変えたいなと思って、リネームしてみたら…ハハハ、全滅。
その後タグ名を戻してみたんですが、値は戻ってきませんでしたガーン
ちなみに、タグ名を変える前に再構築してたページは無事だったので、全再構築の後なら何とかなってたのかもね…orz

なので再度SQLiteのデータをアップし直し、またまたMT4のアップグレードからやり直しドクロ
すると今度は「DBD::SQLite::db prepare failed: database disk image is malformed」なんてエラーが…。
でもこれは簡単なエラーで、単にsqlitedbをアスキーモードでアップしてただけでした(;´▽`A``
バイナリでアップし直して…
またテンプレート内のカスタムフィールドのタグを小文字に書き直して…
再構築して…
できた!!!(*゜▽゜ノノ゛☆

で、この後、MySQLへの移行が待ってるわけですね…。
そして最終的にはMT5にしてやろうと思ってるわけですよ!
この週末でできるのか?!