Re: Expressのデータ削除の際にエラー、さらにそれに関連したエントリーの編集不可

2017年8月28日 at 13:46

エクスプレス自体新しい機能なので、なかなか回答がつくのも難しそうな気はします。取り急ぎ、管理画面のログから、過去のエラーログを遡り、関係ありそうなものは見つからないでしょうか?

Re: Expressのデータ削除の際にエラー、さらにそれに関連したエントリーの編集不可

2017年8月31日 at 0:32
返事遅くなってすいません。

エラーログを調べたところ、
関係があるかどうかはわかりませんが、本エラーが最初に表示されたあたりのログは見つけました。

"Exception Occurred: /****/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:53 An exception occurred while executing 'SELECT count(distinct e.exEntryID) FROM ExpressEntityEntries e LEFT JOIN TypeOfEventExpressSearchIndexAttributes ea ON e.exEntryID = ea.exEntryID WHERE e.exEntryEntityID = ? LIMIT 1' with params [""bf8fec22-8b55-11e7-9974-00164711fcee""]: SQLSTATE[42S02]: Base table or view not found: 1146 Table '[[[[ DB_name ]]]].TypeOfEventExpressSearchIndexAttributes' doesn't exist (0)
"



"Exception Occurred: /****/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:60 An exception occurred while executing 'DELETE FROM ExpressEntities WHERE id = ?' with params [""bf8fec22-8b55-11e7-9974-00164711fcee""]: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`[[[[ DB_name ]]]]`.`ExpressEntityEntries`, CONSTRAINT `FK_B8AE3531AFC87D03` FOREIGN KEY (`exEntryEntityID`) REFERENCES `ExpressEntities` (`id`)) (0)"


サイトのアドレスにあたる部分と、
DB名([[[[DB_name]]]])は伏せていますが、おそらくこの2行がキモかなと。

また、
削除したはずオブジェクト(以降:幽霊オブジェクト)は、
別のオブジェクトのエントリー一覧とかに表示させていたりしたので、
それも影響しているかと思います。

幽霊オブジェクトは、
設定のデータオブジェクトから選択も可能で、
「詳細」「エンティティ編集」「属性」「アソシエーション」「フォーム」は選択可能。
ただし、「属性」では、
登録していた属性は消えていますが、
改めて消す前に登録していた属性のハンドルは残っているみたいで、
「すでに登録されている」というエラーが表示されます。
別の名称でハンドルを登録しようとすると、以下のエラーが出て登録できません。

An exception occurred while executing 'ALTER TABLE TypeOfEventExpressSearchIndexAttributes ADD ak_test_ex_hundles LONGTEXT DEFAULT NULL': SQLSTATE[42S02]: Base table or view not found: 1146 Table '[[[[DB_name]]]].TypeOfEventExpressSearchIndexAttributes' doesn't exist


上記を含め、
どれを設定したところで、反映されないようなので意味はありません。

構造を把握しているわけではないんで、
なんとも言えないですけど、
オブジェクトのテーブルだけがない?
オブジェクトの名前だけがどっかに残って削除できてない???
ということでしょうか?

ちなみに、
MySQLのバージョンは5.6です。