5.3.3.1~5.4.1.1へのUPG後に新規ページ作成するとmysqlエラーがでる。

2011年1月27日 at 19:38

バグではないような気もするのですが念のためこちらへ

サーバーはheteml
バージョン5.3.3.1から5.4.1.1へアップグレードを行いました。
重いサーバーですがなんとかUPG終了

そして本日、エラーがでたので確認したところ

新規ページから作成ができない。
原因を探していると
【ブロックをあらかじめ挿入しているページタイプ(カスタムテンプレートも利用していてもしていなくても)】
を使用するとエラーが発生します。

エラー内容は下記のとおり

Fatal error: Uncaught exception 'ADODB_Exception' with message 'mysql error: [1062: Duplicate entry '1-267' for key 1] in EXECUTE("insert into CollectionVersionBlockStyles (cID, cvID, bID, arHandle, csrID) values ('267', '2', '1', 'Header Nav', '0')") ' in /home/sites/heteml/xxx/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php:78 Stack trace: #0 /home/sites/heteml/xxx/concrete/libraries/3rdparty/adodb/adodb.inc.php(1037): adodb_throw('mysql', 'EXECUTE', 1062, 'Duplicate entry...', 'insert into Col...', false, Object(ADODB_mysql)) #1 /home/sites/heteml/xxx/concrete/libraries/3rdparty/adodb/adodb.inc.php(993): ADOConnection->_Execute('insert into Col...') #2 [internal function]: ADOConnection->Execute('insert into Col...', Array) #3 /home/sites/heteml/xxx/concrete/libraries/database.php(73): call_user_func_array(Array, Array) #4 [internal function]: Database->__call('Execute', Array) #5 /home/sites/hetem in /home/sites/heteml/xxx/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php on line 78

ブロックを挿入していないページタイプでは問題なく新規ページできています。


思ったのが、updates/フォルダにconcret5のコアディレクトリにいれなあかんということでしょうか?
手動の場合は今まで通りconcreteディレクトリ上書きで問題ないですよね?

Re: 5.3.3.1~5.4.1.1へのUPG後に新規ページ作成するとmysqlエラーがでる。

2011年1月27日 at 23:35
次にサイドバーに記事ブロック追加した時にでるエラーです。

Fatal error: Uncaught exception 'ADODB_Exception' with message 'mysql error: [1062: Duplicate entry '879-268' for key 1] in EXECUTE("insert into CollectionVersionBlockStyles (cID, cvID, bID, arHandle, csrID) values ('268', '2', '879', 'Sidebar', '0')") ' in /home/sites/heteml/xxx/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php:78 Stack trace: #0 /home/sites/heteml/xxx/concrete/libraries/3rdparty/adodb/adodb.inc.php(1037): adodb_throw('mysql', 'EXECUTE', 1062, 'Duplicate entry...', 'insert into Col...', false, Object(ADODB_mysql)) #1 /home/sites/heteml/xxx/concrete/libraries/3rdparty/adodb/adodb.inc.php(993): ADOConnection->_Execute('insert into Col...') #2 [internal function]: ADOConnection->Execute('insert into Col...', Array) #3 /home/sites/heteml/xxx/concrete/libraries/database.php(73): call_user_func_array(Array, Array) #4 [internal function]: Database->__call('Execute', Array) #5 /home/sites/hete in /home/sites/heteml/xxx/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php on line 78
 

Re: 5.3.3.1~5.4.1.1へのUPG後に新規ページ作成するとmysqlエラーがでる。

2011年1月28日 at 4:27
結局5.3.3.1へもどしました。
 

Re: Re: 5.3.3.1~5.4.1.1へのUPG後に新規ページ作成するとmysqlエラーがでる。

2011年2月1日 at 18:03
5.4.0.5でも問題は出ました・・・ってArea Splitter の影響だったら、5.4.0.5でも問題出ますね。
 

Re: Re: Re: 5.3.3.1~5.4.1.1へのUPG後に新規ページ作成するとmysqlエラーがでる。

2011年2月24日 at 18:18
木下です。

対策が投稿されていました。
http://www.concrete5.org/community/forums/installation/error-upgrading-to-5-4/

ただし、linuxサーバー上ではテーブル名の大文字小文字が関係するので
記述されているSQLのままではうまくいきません。

ALTER TABLE `CollectionVersionBlockStyles`
DROP PRIMARY KEY,
ADD PRIMARY KEY(
`cID`,
`cvID`,
`bID`,
`arHandle`);

ALTER TABLE `CollectionVersionBlockStyles` DROP PRIMARY KEY ,
ADD PRIMARY KEY ( `cID` , `cvID` , `bID` , `arHandle` ) ;

ALTER TABLE `PagePaths` ADD KEY `cPath` (`cPath`(128));
ALTER TABLE `CollectionVersions` ADD KEY `cvName` (`cvName`(128));

を実行することでページの追加が出来るようになりました。