2011-12-30 16 views
0

私はここでアドバイスをしましたが、データベースをローカルのXAMPPインストールにインポートした後も同じ問題が発生しています。私のSQLダンプがこれらのタグに包まれて外部キーの制約 - DBはインポートされません。 - Magento

SET FOREIGN_KEY_CHECKS=0; 
// FULL DB DUMP 
SET FOREIGN_KEY_CHECKS=1; 

それでも、私は、このエラーメッセージが出ます:

Error 
SQL query: 
ALTER TABLE `mage_catalog_eav_attribute` ADD CONSTRAINT `FK_CATALOG_EAV_ATTRIBUTE_ID` FOREIGN KEY (`attribute_id`) REFERENCES `mage_eav_attribute` (`attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE ; 

MySQL said: Documentation 
#1452 - Cannot add or update a child row: a foreign key constraint fails (`myDB_NAME`.<result 2 when explaining filename '#sql-2e0_5a'>, CONSTRAINT `FK_CATALOG_EAV_ATTRIBUTE_ID` FOREIGN KEY (`attribute_id`) REFERENCES `mage_eav_attribute` (`attribute_id`) ON DE) 

を誰も私が私がこれらのチェックを無効にする必要があります他に何把握するのに役立ちます、またはこのエラーを防ぐ?

Magento 1.4.2を実行していて、xampp経由でphpmyadminでインポートしています。

答えて

1

Phpmyadminでインポートしないでください。通常は本当に悪いです。コマンドラインを使用します。私は、既存のテーブルが制約問題を引き起こしたことを発見し、私はphpMyAdminはMySQLのエクスポートを取ったとき

cat your_mysql_dump_file.sql | mysql -uyour_user -p myDB_NAME 
+0

ありがとう、これは私が経験していた問題をバイパスしました。 – danchet

3

と別のphpMyAdminのインターフェイスにそれを置く:

これは動作するはずです。キーの制約のためにテーブルを削除することも問題でした。

インポートするときは、現在のデータベーステーブルにキー制約がないことを確認してください。私はテーブルを落とすことでこれをしました。

テーブルを削除するには、問題のデータベースのphpMyAdminのSQL画面で、このようなSQLコードを実行して制約チェックをオフにしました。

SET foreign_key_checks = 0; 
DROP TABLE civicrm_acl; 
... all of the problem tables with their constraints... 
DROP TABLE civicrm_worldregion; 
SET foreign_key_checks = 1; 

(後者SETは良いハウスキーピングです)

その後、私は私のインポートを行うことができました。 MySQLのエクスポートを見ると、インポートが終了した後、データが配置された後に制約が追加されました。データが存在する前にMySQLインポートによって制約が適用されると、インポートが完全に機能しなくなります。

+0

このコメントをいただきありがとうございます。次回はこのメソッドを試してみます。 – danchet

関連する問題