プロジェクト

全般

プロフィール

Bug(バグ) #2904

完了

OpenPNE2系からコンバートした環境で誕生日によるメンバー検索の結果に該当するはずのメンバーがヒットしない現象が発生する場合がある

Mutsumi Imamura さんが12年以上前に追加. 約9年前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2012-03-26
期日:
進捗率:

100%

予定工数:
3.6 で発生するか:
Yes (はい)
3.8 で発生するか:
Unknown (未調査)

説明

Overview (現象)

OpenPNE2系からコンバートした環境で誕生日によるメンバー検索の結果に該当するはずのメンバーがヒットしない現象が発生する場合がある。
月 or 日が一桁(1〜9月、1〜9日の誕生日)のメンバーが検索にヒットしなくなる。
おそらくコンバート時に日付部分で一桁のときに 0 で埋められない状態となっていたため, "09" のような検索を行おうとしていたがデータが "9" のようになっていたため検索にヒットしないと思われる。

再現バージョン

  • OpenPNE3.6.2

再現手順

  1. 2系の環境で 3月3日 というような、月日が一桁の誕生日のメンバーを作成する
  2. 3系にコンバートする
  3. 3系の環境で、3月でメンバー検索を実施する
  4. 手順1で作成したメンバーがヒットするはずだが、ヒットしない

Causes (原因)

バグが発生した原因を記入

Way to fix (修正内容)

修正内容を記入

Shouta Kashiwagi さんが12年以上前に更新

  • 対象バージョン261 から OpenPNE 3.8.x に変更

Yuma Sakata さんが12年以上前に更新

  • 対象バージョンOpenPNE 3.8.x から OpenPNE 3.6.4 に変更

Mutsumi Imamura さんが12年以上前に更新

  • 担当者Hidenori Goto にセット

Hidenori Goto さんが12年以上前に更新

原因箇所

overviewに記載されているとおり、V2→V3へのコンバート時に誕生日の月および日が一桁だった場合に0埋め処理が行われないままmember_profileのvalueに値がセットされてしまうため。

修正方針

コンバータでの修正は以下のとおりです。

  • /data/upgrade/2/opUpgradeFrom2MemberProfileStrategy.class.php setPresetMemberProfiles()メソッド末尾に以下のSQL実行を追加します。
$this->conn->execute('UPDATE member_profile SET value = date_format(value_datetime, "%Y-%m-%d") WHERE profile_id = ?', array($birthdayId));
  • 懸案事項:MySQLの日付関数の使用。

すでに稼働中のSNSについて、上記クエリーを実行するバッチを提供。

Hidenori Goto さんが12年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

Hidenori Goto さんが12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

コンバーターの修正のみPull Requestしてあります。
https://github.com/openpne/OpenPNE3/pull/48

Yuya Watanabe さんが12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

Yuya Watanabe さんが12年以上前に更新

下記コミットを stable-3.6.x ブランチにマージしました.

9a06593d35283728d05e29d56c9197c37e3b5a8d

Yuma Sakata さんが12年以上前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

kaoru n さんが約9年前に更新

  • 3.8 で発生するかUnknown (未調査) にセット

他の形式にエクスポート: Atom PDF