ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 12 years ago

#1481 closed defect (duplicate)

PostgreSQL環境でプロフィール編集ができない

Reported by: kiwa Owned by: ebihara
Priority: critical Milestone:
Component: pne-postgresql Version: 2.10.x & 2.11.x
Keywords: Cc:

Description

http://sns.openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=13746 より転記

初期ユーザーのプロフィールのうち、c_memberに登録するデータが反映されない。

結局4時間ソースをおっかけつつ、途中に変数や配列の中身をファイルに吐き出すコードを埋め込み・・・。

結局、OpenPNEのバグ(というよりは、セットアップ用のSQLのバグ)だということが判明した。
PostgreSQLのバージョンとか環境依存の問題かと泣きそうになっていたw

まぁともかく、ここに招待して欲しいってメールだしたときに、PHPでプログラミングしてるから多少のバグ発見はできるかもしれませんって言ったのが嘘にならなくてよかった(ということにしておこうw)


で、バグの原因。
これは、UPDATE文がおかしいせいで、クエリが失敗するということ。

ファイルに吐き出させたUPDATE文が以下の通り。

QUERY:UPDATE c_member SET nickname = 'kalze',birth_year = 1978,birth_month = 5,birth_day = 19,public_flag_birth_year = 'private',u_datetime = '2007-11-01 04:02:05' WHERE c_member_id = 1

ここで注目なのは、更新しようとするカラムだ。

u_datetime というカラムがある。
これはたぶん、プロフィールを更新した日時だとおもう。

セットアップ用のSQLファイルも確認したのだけど、このカラムはテーブル定義にない。

MySQL4.1用のセットアップ用SQLファイルを確認すると存在する。

ということは、PostgreSQLのセットアップSQLファイルのバグだということだ。
カラムの定義しわすれということですな。

これって、PostgreSQL使ってるとプロフィールが更新できないってことだから、PostgreSQLユーザーにとっては運用でカバーできはするけど、ある意味致命的ともいえるバグではなかろうか?

実際に、
alter table c_member add u_datetime timestamp;
alter table c_member alter u_datetime set default '0000-01-01 00:00:00';
を実行した後に、プロフィールを編集すると、見事に更新された。
(NOT NULL属性はPostgreSQLでは後から付けられないので、仕様と必ずしも一致するわけではないが、default値を設定しておけば、NULLにはならないし(NULLに更新するなら話は別だが))

Change History (8)

comment:1 Changed 12 years ago by kiwa

Priority: minorcritical

comment:2 Changed 12 years ago by kiwa

Owner: changed from nobody to ogawa

再現チームでは難しいため判断をお願いします。

comment:3 Changed 12 years ago by kalze

報告者です。 PostgeSQL版対応者のkimura@NSTさんと話したところ、自分のセットアップ漏れだったようです。 installフォルダにある2.8用のcreate.sql、insert.sqlを実行した後に、updateフォルダ内の2.10対応用sqlを実行しなければならなかったのに、していなかったことが原因でした。

ですのでマニュアルの不備ではありましたが、バグとは言い切れないものかと思います。

kimura@NSTさんからご教示いただいた、 2.10用セットアップSQL http://trac.openpne.jp/changeset/4534 2.10用セットアップガイド http://trac.openpne.jp/changeset/4535 ではそのだけで問題ありませんでしたので、早めにそちらに差し替えたほうが、PostgreSQL版を使う人は新規の方が多いと思うので混乱しなくて済むと思います。

comment:4 Changed 12 years ago by kalze

Component: pne-frameworkpne-postgresql

comment:5 Changed 12 years ago by kiwa

Owner: changed from ogawa to ebihara

comment:6 Changed 12 years ago by ebihara

Keywords: 再現待ち removed
Resolution: fixed
Status: newclosed

#1522 開発版から2.10PostgreSQL用のセットアップSQL、ガイドをマージする

以上のチケットで対応することにします。2.10.1で取り込まれる予定です。

ご報告ありがとうございました。

comment:7 Changed 12 years ago by ebihara

Resolution: fixed
Status: closedreopened

comment:8 Changed 12 years ago by ebihara

Resolution: duplicate
Status: reopenedclosed
Note: See TracTickets for help on using tickets.