え? MT5で使えるDatabaseって、、、

 MT4で構築した自社の某ブログをMT5にバージョンアップしました、が、なんかおかしい。このブログは、ものすごくライトな用途だったのでSQLiteを使っており、特にバージョンアップでエラー表示は出なかったのですが、バージョンアップ後テスト投稿をしてみると、こんなエラーが表示されました。Ping送信がらみでのエラーです。

HTTPエラー: 500 Wide character in syswrite

ちょっと、ググってみたんだけど、直接的なヒントが見あたらなかったので、ちゃんとサイトを見直してみると、衝撃の表記を発見しました。

動作環境

サーバOS
Linux, Solaris/Unix, BSD
Mac OS X
Windows Server 2008 (R2には未対応)

ウェブ・サーバ
Apache
Microsoft IIS

データベース
MySQL バージョン5.0 以上
Oracle Database 11g (Movable Type Enterprise のみ)
Microsoft SQL Server 2008 (Movable Type Enterprise のみ)

実行環境
Perl 5.8.1 以上
加えてサーバへのFTPあるいは、コマンドラインでもアクセス利用環境

推奨利用環境
Internet Explorer 6.0 以降 (最新版を強く推奨)
Mozilla Firefox 3.5 以降 (最新版を推奨)

えっ? SQLiteって使え無くなっちゃったの? 、、、って、それ以前にPostgreSQLが載ってないんですけど、両方ともダメになったのか???

 で、MT4+SQLiteからMT5にバージョンアップしたMTの状況ですが、上記に書いた理由でPingが送信できない+ページの再構築をするとテンプレートが崩れた状態で表示されるようです。管理画面では、ちゃんとテンプレートセットも表示されているんだけどなぁ、、、。とにかく、何かおかしい状況になってしまったのは間違いないようです。

 Twitterで状況をTweetしてみたら、PostgreSQL・SQLiteでも使えるという返事をくれた方もいて、「MT5の公式サポートからは外したけど、一応、使える状態にはなっているんだろうな」と推測。ただ、色々設定をいじってみたけど自分のブログは相変わらずおかしい状態のママだったので、復旧を試みることに。

 まず、MT4に戻そうと言うことで、バックアップしていたMT4のディレクトリに差し替えて、、、し、しまった、SQLiteのバックアップを取るのを忘れてた、、、致命的です。試しにアクセスしてみると、みんなの大嫌いな「Internal Server Error」、、、。推測ですが、MT4からMT5にバージョンアップした際にSQLiteのデータベースがアップデートされてしまったのでしょう。
 これは、元に戻すのは無理だと思い、今度はMT5からMTのエクスポート機能でデータをバックアップ。MySQLに新しくデータベースを準備して、mt-config.cgiをSQLiteからMySQLに変更。クリーンインストール状態でセットアップを進め、インストール完了。システム機能から、先ほどのバックアップファイルをインポートすると、無事ブログが復旧しました。やー、以前にMT2.xからMT4にバージョンアップしたときも相当途方に暮れましたが(Berkeley DBからPostgreSQL)、その時も結局「MT2.xでエクスポート→バックアップファイルの文字化け除去(EUCからUTF-8)→MT4.xでインポート」という手順でバージョンアップをしたんですよね。

 そんなこんなで復旧は出来たのですが、MT5でPostgreSQLやSQLiteが使えるかどうかと言う点はグレーのまま。実際に使えてる方もいるので、先ほどの推測の通りなんだろうと思うけど、、、あれ、月曜日にMT5インストールしたよねぇ、、、おい! PostgreSQL8.4.1でフツーに新規インストールできてるじゃないか!! というわけで、とりあえずインストールは問題無さそうです。SQLiteでも大丈夫みたいですね、、、て、今再度インストールを試してみたらフツーにデータベース選択画面で、PostgreSQLとSQLiteが表示されており、インストールは完了しました。やはり、サポートはしないけど使える、っていうスタンスなんでしょうね、中の人じゃないのでわかりませんけど。あと、MT5製品版じゃなくてMTOS5を使ってるのも何かあるのかもしれませんね。

 ちなみに、こんなドキュメントがありました。

SQLite / PostgreSQL から MySQL への移行

Movable Type 5 からは、SQLite や PostgreSQL がサポートされなくなりました。
Movable Type 5 へアップグレードする際、データベースを SQLite や PostgreSQL から MySQL に移行するには、次のように設定します。

まあ、そういうことです。「サポートされなくなりました」という言葉に全てが含まれています。「使えない」のではなくて「サポートされない」という事なのでしょうね。

 ただ、公式で「サポートしない」と言われるといくら使えていても使いたくないですよね、、、。ウチの会社はPostgreSQLな会社なので、けっこーダメージでかいです。既存のお客さんも全部PostgreSQLで動いてるしなぁ、、、。


 9月にPronetミーティングでMT5の話しをしたみたいなのですが、そこに出席してればもうちょっと色々分かったのかもしれません。Pronetの数少ない特権だから絶対に参加しなきゃいけないのに、、、。

 で、その時の配付資料を見てみると、SixApartの資料に加えて、MySQL Enterpriseがらみの資料と、M$社の資料が、、、。もはや何も言いますまい。Pronet経由で質問してみてもいいけど、たぶん、むず痒い回答が来ることが予想されますのでやめておいて、チャンスがあれば中の人に直接聞いてみることにします。たぶん、結果は公開できないだろうけど。

 個人的に、MT5はより進んだCMS的なソフトウェアになっていて、もはやブログ的なCMSの思考では逆に使い辛いソフトになってしまいました。本業であるところのWeb制作で是非ともその実力を試してみたいところです。(なんという、微妙なしめ方)