MovableType

2010年01月10日

 僕が管理してるアリさんのホームページ。ブログはMTを使ってるんだけど、まだBerkeley DBだったので何とかしようとは思ってたんだ。使ってるホスティング・サービスではMySQLの設定はタダだったので早速申し込む。ここで悩んだのが文字エンコード。MTは基本UTF-8推奨なんだけど、それだとホームページ全体をShift-JISから変換せにゃならぬ。静的ページだけならまだしも、自前で作ったcgiが沢山動いているので、これも改造しなきゃならん。かと言ってひとつのサイトに文字エンコードが何種類も存在するのは絶対ヤなのね。
 前もってperlのcgiを調べてみると、やはり昔組んだスクリプト。jcode.plなんか使っている。jcode.plはUTF-8は非対応なので、ちゃんとしたjcode.pmに変更。テストしたら上手くいったので、静的ページも全部UTF-8に変換しておいた。あとはこいつらをアップロードするタイミングだ。
 Berkeley DBはディレクトリごとバックアップ、ブログのページもまるごとバックアップしておいて作業開始。まずはShift-JISのままBerkeley DBからMySQLへ移行し、その後文字エンコードを変換しようというたくらみ。オンラインマニュアルを見ながらmt-config.cgiを書き換えてmt-db2sql.cgiを実行したらエラーで止まりやがった。調べてみるとログのテーブル変換に失敗しているようだ。ログはほったらかしておいたので、数千件になっていたんだけど、Berkeley DBってエントリー数が増えるとどっかで壊れるらしい、ひでーじゃん。あわててmt-config.cgiをもとに戻してBerkeley DBでMTのツールを起動してみたらログ画面へアクセスできないでやんの。それでデータベースのディレクトリをまさぐってログ関係のファイルを全部削除してからmt-db2sql.cgiを実行したらWarningが出ながらもどうにか終わった模様。で調べてみると3本のブログは移行できたみたいだけど、エントリーが文字化けの嵐(泣)。
 やっぱりDBがUTF-8なのにMTの指定がShift-JISのままだとエンコードがおかしいことになっちゃうみたいね。あーもう面倒だ。ツールで移行することをここで諦める。/cgi-binの下にもうひとつのmtディレクトリを作って、こちらはMySQLで起動。画面をふたつ開いてエントリーをひとつずつコピペ(泣)。アリさんのブログはコメントもトラックバックも禁止してるからエントリーだけなんとかすればいい。といってもエントリーは280件くらいあった。全部の移行に4時間かかった。


コメント

お疲れです。
あまりに難解で何をどうコメントしたらいいのやら...
PageMillで作って無料のジオにアップしてたのは遠い昔の話です。
いやはや

アリさん元気にしてまっか?

バックヤードではいろいろやってまして。。。

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)


« ブルーグラス | メイン | ごろごろ »