Migration Tool バージョン 0.9.1 のインストールでエラー

2021年1月8日 at 10:43

アドオン Migration Tool バージョン 0.9.1 のインストールでエラーとなり、下のログが出力されています。

Exception Occurred: /home/hogehoge/public_html/updates/concrete5-8.5.4/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:60 An exception occurred while executing 'ALTER TABLE ExpressAttributeKeys ADD CONSTRAINT FK_8C881F1B6561A7E FOREIGN KEY (akID) REFERENCES AttributeKeys (akID) ON DELETE CASCADE':

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`dbnamehogehoge`.`#sql-11f_205bdd`, CONSTRAINT `FK_8C881F1B6561A7E` FOREIGN KEY (`akID`) REFERENCES `AttributeKeys` (`akID`) ON DELETE CASCADE) (0)

ダッシュボードの機能拡張ページには「インストール済み」に表示されていますが、「システムと設定」にはツールは表示されていません。
同じ構成のローカルのXampp環境では、インストールは成功しました。

ツールはEXPRESSへのimportに使用予定です。ご教授いただければと思います。

サーバーはXserver
Core Version - 8.5.4
Version Installed - 8.5.4
Database Version - 20200609145307

# Database Information
Version: 5.7.30

# PHP Version 7.1.33

タグ:

Re: Migration Tool バージョン 0.9.1 のインストールでエラー

2021年1月9日 at 11:50
eizaさま

 おはようございます。
私が、Migration Toolをインストールしたときですが、
GitHubから、パッケージの内容をクローンして、
packages/migration_tool/ 配下のすべてのファイルを
concrete5がインストールされたサーバの
,/packages 配下に設置して、ダッシュボード機能拡張ページから
インストールを実行して成功したと思います。
xammp へのインストールは成功されたとの事ですが、
Xserverでも同じインストール手順を踏まれたということでしょうか。
 

Re: Re: Migration Tool バージョン 0.9.1 のインストールでエラー

2021年1月10日 at 12:25
ハイキックさん 今日は
はい、GitHubからDLした バージョン 0.9.1 をpackages下にコピーしてダッシュボードの拡張からインストールしました。Xamppではインストールできたので、手順自体は大丈夫だと思われます

本家を調べたのですが、アドオンでのこのようなエラー幾つか見られました。コアのバグだとか、他のアドオンの影響だとか、DBの修復だとかがみられ、特定とか絞り込みまではだどりつけませんでした。
日本でも1件投稿がありましたが、返答がありませんでした。

改めてエラーメッセージの見ると、TABLE ExpressAttributeKeys と言っており、何かMigration Toolとは関連が無いようにも見えますが、MigrationなのでExpressまで範囲にいれているのかもしれません。
ExpressAttribute テーブルに不整合があるのでしたら、このテーブルを再作成かなとも思っています。テーブル再構築の技も持っていませんが。
最近、他にインストールしたアドオンではこのようなエラーは出なかったので、一般的な構成や手順のエラーではないと思っています。
 

Re: Migration Tool バージョン 0.9.1 のインストールでエラー

2021年1月10日 at 12:35
AttributeKeys テーブルが存在しないというのが、AttributeKeysテーブルに対して外部キーを設定できない理由としてはまず考えられますが、concrete5単体で正しく動作しているのであれば考えにくく、他の原因も思いつきづらいです。
もし可能なのであれば、concrete5のインストールからやり直したいところです。
差し支えなければ、発見されたという本家の投稿のURLなど貼っていただけると、それを見た人から別の角度のアイディアが得られるかもしれません。
 

Re: Migration Tool バージョン 0.9.1 のインストールでエラー

2021年1月10日 at 18:00
菱川さん、コメントありがとうございます。

フォーラムには 28件と結構投稿が見られます
http://www.concrete5.org/gsearch?cx=006258482937498927541:j8gv1aamati&cof=FORID:10&ie=UTF-8&q=Integrity%20constraint%20violation:%201452%20Cannot%20add%20o...

その中の一部です。
アドオンmagic-tabsのインストールで発生しており、ハックで対応した記事
http://www.concrete5.org/marketplace/addons/magic-tabs1/support/error-when-installing/

パッケージをインストールしようとすると、次のようなエラーが発生します。
http://www.concrete5.org/community/forums/customizing_c5/foreign-key-problem-on-packages

Windows環境からLinuxへの移行のものが幾つか見られますが、これは該当しないです。

よろしくお願いいたします。
 

Re: Migration Tool バージョン 0.9.1 のインストールでエラー

2021年1月13日 at 11:24
構成としては同じXserverの本番サイトにインストールしてみたところ導入できました。
エラーとなったサイトはコピーサイトですが、ページやExpressなどのインスタンスは異なります。(本番にはEXPRESS DBは未作成です。)
異なる部分に関する問題だと思われます。EXPRESS DBは再作成してみようと思います。
 

Re: Migration Tool バージョン 0.9.1 のインストールでエラー

2021年1月15日 at 14:34
その後の様子を報告

インストールエラーのなったサイトでエンティティ再作成のため、前のエンティティを削除しようとしたところ、下のエラー
Exception Occurred: /home/hogehoge/public_html/updates/concrete5-8.5.4/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:60 An exception occurred while executing 'DELETE FROM ExpressEntities WHERE id = ?' with params ["4ebc1ddb-38ec-11eb-8a6f-00163eb204a8"]:

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`dbnamehoge`.`ExpressAttributeKeys`, CONSTRAINT `FK_8C881F181257D5D` FOREIGN KEY (`entity_id`) REFERENCES `ExpressEntities` (`id`)) (0)

エンティティを削除できないエラーは、日本や本家のフォーラムに結構見られました。

不整合で孤立しているであろうテーブルエントリをphpMyAdminで削除し、Expressでエンティティ削除をしたところ、正常に削除できました。

その後、Migration Toolインストールに再トライ。結果エラー
Exception Occurred: /home/hogehoge/public_html/updates/concrete5-8.5.4/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:60 An exception occurred while executing 'ALTER TABLE AttributeValues ADD CONSTRAINT FK_DCCE7864B6561A7E FOREIGN KEY (akID) REFERENCES AttributeKeys (akID) ON DELETE CASCADE':

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`dbnamehoge`.`#sql-11f_223073`, CONSTRAINT `FK_DCCE7864B6561A7E` FOREIGN KEY (`akID`) REFERENCES `AttributeKeys` (`akID`) ON DELETE CASCADE) (0)

AttributeKeysが不整合であろうことを言っているのだろうと思いますが、それ以上のことは???です。

Migration Toolの使用は当面保留にしようと思います。