2008年5月10日土曜日

Gallery からGallery2へのデータ移行

私が管理しているServerには、画像を手軽にアップ・閲覧するために Gallery というPHPで書かれたソフトをインストールしています。

Galleryサイト

Server開設当時(平成14年頃)から平成16年度まで11892枚(albums1)、平成17年度から現在まで18822枚(albums2)の画像をアップしており、このデータを新しいServerにどのようにして移行するか頭を悩ましています。

移行に関して問題点は

  1. 旧サーバーと新サーバーでシステムの文字コードが違う EUC-JP --> UTF-8
  2. albums1(Shift-JIS) --> MySQL(UTF-8)
  3. albums2(EUC-JP) --> MySQL(UTF-8)
  4. Gallery(NonDataBase) --> Gallery2(MySQL)

早速、新サーバーにGalleryをインストールしたいと思いますが、Gallery Ver1はEUC-JPで記述されておりUTF-8はサポートされていません。Gallery2はUTF-8がデフォルトです。
Galleryのサイトで調べてみると、Gallery Ver1からGallery2への移行は、Gallery2の中にツールがあるので、早速Gallery2をインストールします。
問題点 1. と 3. 4.はクリアーしましたが、2. が問題です。albums1(Shift-JIS)-->MySQL(UTF-8)はどうもサポートしていないようです。

サーバー開設当時は、Galleryは日本語をサポートしていなかったため、設定ファイルを無理やり日本語化して使用していました。日本語を正式にサポートしてまもなくサーバーを変更しその機会に新規にGallery Ver1(日本語サポート版)をインストールしました。(album2ですね)
当時、どうにかしてalbum1とalbum2を統合しようと試みましたが私には無理でした。今回はどうでしょう?

Gallery2のインストールは本当に簡単にいきました。要はPHPの設定と画像関係のツールを指示に従ってインストールしていくことです。
次は、データ移行ですが、album2(EUC-JP) -->MySQL(UTF-8)は、メニューから
サイト管理 --> インポート --> Gallery1
で、指示に従って行なえば簡単です。ただ一点だけ嵌ってしまいました。
/etc/php.ini
memory_limit = 64M  (元は16Mです)
デフォルトの16Mだとデータ移行時にメモリー不足になり途中でストップしてしまいました。
設定ファイルを書き換え、Apache2を再起動、Gallery2上から操作、これで一気にデータ移行ができました。一安心

続いてalbum1のほうですが、いろいろと試していますが実現できていません。時間が欲しい・・・