http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2012-11-14T10:21:42Z
OpenPNE Issue Tracking System
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=15923
2012-11-14T10:21:42Z
ichikawa tatsuya
ichikawa@tejimaya.com
<ul></ul><p>c_memberテーブルのオートインクリメントの値をmemberテーブルへ引き継ぐよう修正。<br /><a class="external" href="https://github.com/ichikawatatsuya/OpenPNE3/commit/516b397435f0602879b43d49088f95580bfc296c">https://github.com/ichikawatatsuya/OpenPNE3/commit/516b397435f0602879b43d49088f95580bfc296c</a></p>
<pre>
diff --git data/upgrade/2/sql/member_basic.sql data/upgrade/2/sql/member_basic.sql
index 4766c81..304045b 100644
--- data/upgrade/2/sql/member_basic.sql
+++ data/upgrade/2/sql/member_basic.sql
@@ -1,3 +1,8 @@
INSERT INTO member (id, name, is_active, is_login_rejected, created_at, updated_at) (SELECT c_member_id, nickname, 1, is_login_rejected, r_date, u_datetime FROM c_member);
+INSERT INTO c_member value("","","","","","","","","","","","","","","","","","","","","","","","","","");
+SET @lastId = (SELECT last_insert_id());
+SET @auto_inc_query = CONCAT('ALTER TABLE member AUTO_INCREMENT = ', @lastId);
+PREPARE query_prepare FROM @auto_inc_query;
+EXECUTE query_prepare;
UPDATE member, c_member SET invite_member_id = c_member_id_invite WHERE id = c_member_id AND c_member_id_invite <> 0;
</pre>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=15924
2012-11-15T05:07:05Z
ichikawa tatsuya
ichikawa@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>New(新規)</i> から <i>Accepted(着手)</i> に変更</li><li><strong>担当者</strong> を <i>ichikawa tatsuya</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=15925
2012-11-15T05:07:36Z
ichikawa tatsuya
ichikawa@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Accepted(着手)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>0</i> から <i>50</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=15969
2012-11-19T06:17:09Z
Yuya Watanabe
watanabe@openpne.jp
<ul><li><strong>トラッカー</strong> を <i>Backport(バックポート)</i> から <i>Bug(バグ)</i> に変更</li><li><strong>3.6 で発生するか</strong> を <i>Yes (はい)</i> にセット</li><li><strong>3.8 で発生するか</strong> を <i>No (いいえ)</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=15970
2012-11-19T06:25:15Z
Yuya Watanabe
watanabe@openpne.jp
<ul></ul><p>メモを書き写してきた.</p>
<p><a class="external" href="https://redmine.openpne.jp/issues/3074#note-4">https://redmine.openpne.jp/issues/3074#note-4</a></p>
<blockquote>
<p>他にも auto_increment の値が更新されないことによって発生しうる問題を調査する必要がある.</p>
メンバについては 下記データが影響を受けるものとおもわれる.他にもあるかどうかは調査が必要.
<ul>
<li>日記コメント</li>
<li>あしあと</li>
<li>コミュニティトピックコメント</li>
<li>コミュニティイベントコメント</li>
</ul>
</blockquote>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=15996
2012-11-21T12:08:50Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Rejected(差し戻し)</i> に変更</li></ul><p>差し戻します。以下の説明を読んで、修正方法について再度検討しなおしてください。</p>
<a name="AUTO_INCREMENT-の取得方法について"></a>
<h3 >AUTO_INCREMENT の取得方法について<a href="#AUTO_INCREMENT-の取得方法について" class="wiki-anchor">¶</a></h3>
<p>c_member テーブルのレコードは、 OpenPNE 3 のデータベースには (まだ) 入れることのできない情報を持っているために、アップグレードが終わっても c_member テーブルの削除処理をおこなっていません。</p>
<p>c_member テーブルは今後も使用する可能性があるため、ダミーのデータを挿入したのち、そのデータを削除していないことは問題です。</p>
<p>また、できるだけ無用なデータ操作処理を伴わない形で実現できないかについても再考してください。</p>
<p>アップグレードに関しては MySQL に依存していても問題ありません。ということで、以下の手段によって AUTO_INCREMENT を取得することができます。</p>
<ul>
<li><code>SHOW TABLE STATUS LIKE "c_member"</code> によって得られたレコードの、 Auto_increment カラムを取得する</li>
<li><code>SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_NAME='c_member' AND TABLE_SCHEMA = DATABASE();</code> によって取得する</li>
</ul>
<p>ただし後者は information_schema を利用する関係で、 MySQL 5.1 以降でしか使えない手ということになり、採用することができません。前者は OpenPNE がサポートするバージョンよりも古い MySQL でも利用可能だと思いますが、もし採用する場合は念のため確認をお願いします。</p>
<a name="AUTO_INCREMENT-の設定方法について"></a>
<h3 >AUTO_INCREMENT の設定方法について<a href="#AUTO_INCREMENT-の設定方法について" class="wiki-anchor">¶</a></h3>
<p>PREPARE 文や EXECUTE 文は MySQL 5.1 の新機能であり、 5.1 未満のバージョンでは利用できません。</p>
<p><a class="external" href="http://bugs.mysql.com/bug.php?id=20665#c92132">http://bugs.mysql.com/bug.php?id=20665#c92132</a></p>
<blockquote>
<p>[10 Nov 2006 18:05] Paul DuBois</p>
<p>Clarification: The additional statements are supported both<br />for SQL syntax for prepared statements (PREPARE/EXECUTE)<br />and by the binary protocol. The additional supported statements<br />are noted in both these places:</p>
<p><a class="external" href="http://dev.mysql.com/doc/refman/5.1/en/sqlps.html">http://dev.mysql.com/doc/refman/5.1/en/sqlps.html</a><br /><a class="external" href="http://dev.mysql.com/doc/refman/5.1/en/c-api-prepared-statements.html">http://dev.mysql.com/doc/refman/5.1/en/c-api-prepared-statements.html</a></p>
</blockquote>
<p><a class="external" href="http://dev.mysql.com/doc/refman/5.1/en/news-5-1-12.html">http://dev.mysql.com/doc/refman/5.1/en/news-5-1-12.html</a></p>
<blockquote>
<p>The following statements now can be executed as prepared statements (using PREPARE plus EXECUTE):</p>
</blockquote>
<p>OpenPNE 3 がサポートする MySQL は 4.1 以降であると doc/ja/OpenPNE3_Setup_Guide.txt 等に明示されていますから、少なくとも安定版においては MySQL 4.1 でも動作する形での対応をおこなわなければなりません。</p>
<p>おそらく PREPARE 文と EXECUTE 文を使わないことには MySQL のみで対応をおこなうことは難しいと思います。今回の場合は無理して SQL のみで完結させる必要はないと思うので、 PHP 等のレベルでクエリを構築して実行するわけにはいかないでしょうか。</p>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=15997
2012-11-22T04:04:23Z
ichikawa tatsuya
ichikawa@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Rejected(差し戻し)</i> から <i>Accepted(着手)</i> に変更</li><li><strong>進捗率</strong> を <i>50</i> から <i>0</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=15998
2012-11-22T04:10:53Z
ichikawa tatsuya
ichikawa@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Accepted(着手)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>0</i> から <i>50</i> に変更</li></ul><p>Mysql4.1以降で動作する機能のみを使用するように修正しました。<br />(SHOW TABLE STATUS はバージョン3.23で導入された機能なので問題ありませんでした)</p>
<p>また、MysqlのみではAuto_incrementの値を取得できないためPHPを使用するよう変更しました。</p>
<pre>
diff --git data/upgrade/2/definition.yml data/upgrade/2/definition.yml
index 7b5e651..25e83f7 100644
--- data/upgrade/2/definition.yml
+++ data/upgrade/2/definition.yml
@@ -8,7 +8,8 @@ create_tables:
strategy: CreateTable
member_basic:
- strategy: SQLImport
+ strategy: opUpgradeFrom2MemberStrategy
+ file: %SF_DATA_DIR%/upgrade/2/opUpgradeFrom2MemberStrategy.class.php
files:
strategy: SQLImport
diff --git data/upgrade/2/opUpgradeFrom2MemberStrategy.class.php data/upgrade/2/opUpgradeFrom2MemberStrategy.class.php
new file mode 100644
index 0000000..721a0ec
--- /dev/null
+++ data/upgrade/2/opUpgradeFrom2MemberStrategy.class.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * This file is part of the OpenPNE package.
+ * (c) OpenPNE Project (http://www.openpne.jp/)
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file and the NOTICE file that were distributed with this source code.
+ */
+
+/**
+ * The upgrating strategy by importing member.
+ *
+ * @package OpenPNE
+ * @subpackage task
+ * @author tatsuya ichikawa <ichikawa@tejimaya.com>
+ */
+class opUpgradeFrom2MemberStrategy extends opUpgradeAbstractStrategy
+{
+ public function run()
+ {
+ $this->getDatabaseManager();
+ $this->conn = Doctrine_Manager::connection();
+
+ $this->conn->beginTransaction();
+ try
+ {
+ $this->doRun();
+
+ $this->conn->commit();
+ }
+ catch (Exception $e)
+ {
+ $this->conn->rollback();
+
+ throw $e;
+ }
+ }
+
+ public function doRun()
+ {
+ $this->conn->execute('INSERT INTO member (id, name, is_active, is_login_rejected, created_at, updated_at) (SELECT c_member_id, nickname, 1, is_login_rejected, r_date, u_datetime FROM c_member)');
+
+ $tableStatus = $this->conn->fetchArray('SHOW TABLE STATUS LIKE "c_member"');
+ $autoIncrement = $tableStatus[10];
+ $this->conn->execute("ALTER TABLE member AUTO_INCREMENT = $autoIncrement");
+ $this->conn->execute('UPDATE member, c_member SET invite_member_id = c_member_id_invite WHERE id = c_member_id AND c_member_id_invite <> 0;');
+ }
+}
</pre>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=15999
2012-11-22T09:35:20Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Rejected(差し戻し)</i> に変更</li></ul><p>レビュー対象となるコミットを示すか、もしくは共有リポジトリのリリースブランチにコミットを追加することによって、このチケットにコミットを紐づけてください。</p>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=16000
2012-11-22T12:10:46Z
ichikawa tatsuya
ichikawa@tejimaya.com
<ul></ul><p>すみませんでした。<br />stable-3.6.xブランチで修正しました。コミットは以下です。</p>
<p><a class="external" href="https://github.com/ichikawatatsuya/OpenPNE3/commit/9bb27331f8b7e98ab9b02bfb7a9626a56d953ffa">https://github.com/ichikawatatsuya/OpenPNE3/commit/9bb27331f8b7e98ab9b02bfb7a9626a56d953ffa</a></p>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=16066
2012-12-07T06:48:33Z
ichikawa tatsuya
ichikawa@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Rejected(差し戻し)</i> から <i>Accepted(着手)</i> に変更</li><li><strong>進捗率</strong> を <i>50</i> から <i>0</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=16067
2012-12-07T06:48:44Z
ichikawa tatsuya
ichikawa@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Accepted(着手)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>0</i> から <i>50</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=16137
2012-12-12T11:47:27Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Pending Testing(テスト待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>50</i> から <i>70</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3258: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある
http://redmine.openpne.jp/issues/3258?journal_id=16139
2012-12-12T13:35:45Z
Mutsumi Imamura
imamura@openpne.jp
<ul><li><strong>ステータス</strong> を <i>Pending Testing(テスト待ち)</i> から <i>Fixed(完了)</i> に変更</li><li><strong>進捗率</strong> を <i>70</i> から <i>100</i> に変更</li></ul><p>動作確認OKです。</p>