2011年7月15日金曜日

OpenPNEを2.14から3.3にアップグレード

OpenPNE2.14を使ってたんですが、既に主流は3系になっており、また2系はphp5.2以上では動作が保証されないということなので、面倒ですが3系にアップグレードすることにしました。


アップグレード手順はこちらを参考にしました。
http://www.openpne.jp/doc-upgrade-from-2x/


とりあえず深く考えず、手順通りにアップグレードを実施します。

が、案の定エラーがたくさん出てうまくいきませんでした。


ある程度時間がかかりそうな雰囲気だったので、腹をくくってアップグレードに取り組んでいきます。


・phpモジュールを入れる

そもそも動作環境が用意できてませんでした。yumでパッケージ入れます。

# yum install php53-xml
# yum install php53-gd


などを実行し、

# php -m

で指定のモジュールが入ってることを確認します。


・InnoDB化

$ ./symfony openpne:upgrade-from-2 --origin=2.14

を実行すると、SQLでエラーが出まくってました。
詳細は割愛しますが、テーブルが作れないとか、インデックスがどうのこうのとか言われました。

phpMyAdminでテーブルを見ると、もとからある2.14のテーブルはMyIsamで、新しく作られた3.3系のテーブルはInnoDBになってました。

ということは、InnoDBじゃないといけないのかな?と思ってググってみたらそのとおりでした。

http://d.hatena.ne.jp/shiku_otomiya/20110530/p1

というわけで、ALTER TABLEで2.14系のテーブルをInnoDBにします。

ALTER TABLE table_name ENGINE = InnoDB;

これでエラーが出なくなりました。


・php.iniの設定

アップグレード処理でメモリを使うみたいなので、一時的にmemory_limit=-1にしました。


・日記コメントの添付画像

アップグレード完了後、ログインして巡回してみたところ、日記コメントの添付画像が消えてるのに気付きました。

DBを見てみたところ、diary_comment.has_imagesのデータが移行できていなかったようなので、以下のように画像があるコメント調べてupdateしました。

select distinct diary_comment_id from diary_comment_image;

update diary_comment set has_images = 1 where id in (↑で抽出したid);



以上でアップグレード完了です。

多少手間取りましたが、勘と経験で乗り切ることができました。

0 件のコメント:

コメントを投稿