ラベル Gallery の投稿を表示しています。 すべての投稿を表示
ラベル Gallery の投稿を表示しています。 すべての投稿を表示

2009年12月31日木曜日

Gallery からGallery2へのデータ移行(成功)

昨年の5月に旧サーバーのGalleryから新サーバーのGallery2へデーター移行を試みましたがうまく行っていませんでした。そのことが元で、サーバーの完全移行をあきらめました。

以前の記事 Gallery からGallery2へのデータ移行

その中で

Server開設当時(平成14年頃)から平成16年度まで11892枚(albums1)、平成17年度から現在まで18822枚(albums2)の画像をアップしており、このデータを新しいServerにどのようにして移行するか頭を悩ましています。
albums1(Shift-JIS) --> MySQL(UTF-8)
サーバー開設当時は、Galleryは日本語をサポートしていなかったため、設定ファイルを無理やり日本語化して使用していました。
日本語を正式にサポートしてまもなくサーバーを変更しその機会に新規にGallery Ver1(日本語サポート版)をインストールしました。(album2ですね)
当時、どうにかしてalbum1とalbum2を統合しようと試みましたが私には無理でした。
さて、今回こそはと意気込みながらトライしました。

試したことその一
・galleryデータディレクトリー内、album.datファイルの文字コードをnkfコマンドを使って変換
・その後、gallery1インポートを行う。
 見事に失敗!以前も同じようなことを試したかも・・・


試したことその二

gallery2の管理画面を良く見てみると、「アイテム追加」(ローカルホスト内の指定フォルダを検索してファイルをインポートする)機能があります。
よく調べてみると、何とか使えそうです。

1.バックアップをリストア
今回は、バックアップしていた /backup/backup_albums.tar.gz を /backup/albums にリストアし、そこからデータを読み込みインポートします。
[root@centos /]# cd /backup
[root@centos backup]# mkdir albums
[root@centos backup]# cd albums
[root@centos albums]# tar -xvzf /backup/backup_albums1.tar.gz
2.アルバムタイトルの保存
①albumdb.datの文字コード変換
ごみファイルを削除する前に、まず、アルバムのタイトルを保存しておく必要があります。
それには、albumsディレクトリートップに存在する albumdb.dat の文字コードをUTFに変換します。
[root@centos albums]# find . -type f -name 'albumdb.dat' -print0 | xargs -0 nkf -SeLu --overwrite
②データのインポート画面からタイトルをコピー
gallery2→[サイト管理]→[管理オプション]→[インポート]→[galley1]
「Gallery 1のアルバムディレクトリのパス 」を入力
/backup/albums
 インンポートするディレクトリーを選択(チェック)し、次へ
 ディレクトリー名とタイトル名が出現するので、全てコピーし、ローカルPCに保存

3.画像ディレクトリー内のごみファイルの削除
次に問題になるのが、各ディレクトリーに存在する、album.datやサムネイルファイル、リサイズファイルその他ごみファイルやディレクトリーです。
そこで、「特定位置の特定ファイルを全て捜して削除する」方法で削除します。

[root@centos /]# find /hoge -name hogehoge* -exec rm -f {} \;
4.ローカルホスト内のディレクトリーからインポート
albumsディレクトリーをWinSCPで確認し、いよいよデーターインポートを行います。
①インポート先のアルバムを作成
②作成したアルバムにインポート

5.アルバム名を変更し完了
読み込んだアルバムを開くと、データが保存されているでしょう。
しかしタイトル名は「ディレクトリー名」になっているので、2.-②で保存したタイトル名をカットアンドコピーし終了。

今回は成功しました。

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のほうですが、いろいろと試していますが実現できていません。時間が欲しい・・・