TODO #18295

MySQLのSQL_MODE=STRICT_TRANS_TABLES時にコンテンツ管理でブログが追加できずエラーになる

坂口 昌己3ヶ月前に追加. 約1ヶ月前に更新.

ステータス:終了開始日:
優先度:通常期日:
担当者:坂口 昌己進捗率:

100%

カテゴリ:ブログ
対象バージョン:4.0.7

説明

MySQL5.6から、SQL_MODEのSTRICT_TRANS_TABLESがデフォルト化していて
SQLのチェックが厳密になったことが影響しているようです。

具体的には、Blogプラグインの幾つかのスキーマ(status など)が interger(2)で
定義していることが原因で、プログラム内でtrue / falseで判断している箇所のfalseが
0 ではなく ''(空文字)となってしまい、DB追加・更新時に厳密なチェックでは
integerに''は入らないのでエラーになってしまっている。

解決策は boolean(MySQLの場合tinyint(1)) にすることで、問題は解消する。

lib/Baser/Plugin/Blog/Config/Schema/blog_categories.php

        'status' => array('type' => 'integer', 'null' => true, 'default' => null, 'length' => 2),

      ↓
        'status' => array('type' => 'boolean', 'null' => true, 'default' => null),

lib/Baser/Plugin/Blog/Config/Schema/blog_comments.php

        'status' => array('type' => 'integer', 'null' => true, 'default' => null, 'length' => 2),

      ↓
        'status' => array('type' => 'boolean', 'null' => true, 'default' => null),

lib/Baser/Plugin/Blog/Config/Schema/blog_contents.php

        'comment_use' => array('type' => 'integer', 'null' => true, 'default' => null, 'length' => 2),
        'comment_approve' => array('type' => 'integer', 'null' => true, 'default' => null, 'length' => 2),

      ↓
        'comment_use' => array('type' => 'boolean', 'null' => true, 'default' => null),
        'comment_approve' => array('type' => 'boolean', 'null' => true, 'default' => null),

baserCMS4.1.0-devにて確認しました。
同様の定義が他のプラグインやコアにもあったらあわせて改修する必要がありそうです。

※ 過去のチケット http://project.e-catchup.jp/issues/15072 と同様の原因と思われます。

1.png (172.936 KB) 坂口 昌己, 2017/08/30 12:31

3.png (367.933 KB) 坂口 昌己, 2017/08/30 12:31

2.png (1.535 MB) 坂口 昌己, 2017/08/30 12:31

2192
2193
2194

関係しているリビジョン

リビジョン 81f53f96
K.A.Burk が2ヶ月前に追加

fix #18295 MySQLのSQL_MODE=STRICT_TRANS_TABLES時にコンテンツ管理でブログが追加できずエラーになる問題を改善 (#726)

履歴

#1 坂口 昌己2ヶ月前に更新

  • 担当者坂口 昌己 にセット

#2 坂口 昌己2ヶ月前に更新

  • カテゴリブログ にセット

#3 江頭 竜二2ヶ月前に更新

  • 対象バージョン4.0.7 にセット

報告ありがとうございます。
バグフィックスは4.0.7 にマージし、その後、4.1.0 にマージする方向となります。
よろしくお願いします。

#4 匿名ユーザー が2ヶ月前に更新

  • ステータス担当 から 解決 に変更
  • 進捗率0 から 100 に変更

更新履歴 basercms|commit:81f53f96795ac3bc0a9449865ccbe8a368db87e5 で適用されました。

#5 江頭 竜二約1ヶ月前に更新

  • ステータス解決 から 終了 に変更

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