2.12→2.14のアップグレードSQLがエラーで中断される問題
07 / 24 金曜日 2009
OpenPNE 開発チームのきわです。
OpenPNE2.12→2.14 のアップグレードSQL がMySQL4.0 環境で実行するとエラーが発生し、最後まで実行できないという報告を戴きました。
OpenPNE2.14.1 にて対応を含め、リリースを行いますが、リリースまで少し時間が空くので、この場で修正方法を報告しておきます。
公式SNS にて報告してくれた教授さん、ありがとうございます。
修正方法
修正が必要なのは以下のファイルです。
- ・setup/sql/mysql40/upgrade/upgrade-2.12to2.14.sql
32行目の 「 is_sns_entry_confirm` 」 にある 「 ` 」 を削除してください。
- 修正前
-
31 — update09
32 ALTER TABLE c_member_pre ADD COLUMN is_sns_entry_confirm` tinyint(1) NOT NULL default ‘0’;
33 - 修正後
-
31 — update09
32 ALTER TABLE c_member_pre ADD COLUMN is_sns_entry_confirm tinyint(1) NOT NULL default ‘0’;
33
また setup/sql/mysql40/update/update09-for2.13.8-alter-c_member_pre-add-column-is_sns_entry_confirm.sql にも同様のSQL文があるので、MySQL4.0 でOpenPNE2.13.8 以前の OpenPNE2.13 開発版をご利用の方は、update sql の修正をお願いします。
DBバックアップを取らずにupgrade sql を実行し、この問題が発生した場合
DBバックアップを取らずにupgrade sql を実行し、この問題が発生した場合、アップグレードを完了させるにはupdate sql を順番に実行していく必要があります。
手順
- 1. setup/sql/mysql40/update/update09-for2.13.8-alter-c_member_pre-add-column-is_sns_entry_confirm.sql を修正内容に沿って修正します
- 2. setup/sql/mysql40/update/ 内の update09~update17 を順番に実行していきます。実行方法はupgrade sqlと同じ要領です。
update 17 までのsql を実行すれば、アップグレードは完了です。
コメント:1
- OpenPNEユーザー 09-07-27 (月) 18:20
-
1行目から、下記エラーでアップグレードできませんでした。
#1060 – Duplicate column name ‘u_datetime’
その他にもエラーがでるSQLがありましたので、それを飛ばして実行し、ファイルも入れ替えると、管理画面上は、2.14と表示されています。
これでアップグレード出来ているのでしょうか?