2011-12-30 2 views
0

Я пошел за советом здесь, но я все еще сталкиваюсь с теми же проблемами после импорта моей базы данных в локальную установку XAMPP.Внешние ограничения ключей - DB не будет импортировать. - Magento

My SQL дамп обернут в тегах:

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 и импортирую с помощью phpmyadmin через xampp.

ответ

1

Не импортировать через Phpmyadmin. Обычно это работает очень плохо. Используйте командную строку.

Это должно работать:

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

Спасибо, это обошло проблемы, которые я испытывал. – danchet

3

Когда я взял экспорт PhpMyAdmin MySQL и поместить его в другой интерфейс PhpMyAdmin, я обнаружил, что заранее существующие таблицы вызвало проблему ограничения. Удаление таблиц также было проблематично из-за ключевых ограничений.

При импорте убедитесь, что в существующих таблицах базы данных отсутствуют ограничения по ключам. Я сделал это, сбросив таблицы.

Чтобы отбросить таблицы, я отключил проверку ограничений, выполнив такой код SQL, как это, на экране SQL phpMyAdmin для рассматриваемой базы данных.

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

Смежные вопросы