Ограничения внешнего ключа - БД не импортируется.- Magento - PullRequest
0 голосов
/ 31 декабря 2011

Я последовал этому совету, но после импорта базы данных в локальную установку XAMPP все еще сталкиваюсь с теми же проблемами.

Мой дамп 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.

Ответы [ 2 ]

3 голосов
/ 28 октября 2013

Когда я взял экспорт MySQL phpMyAdmin и поместил его в другой интерфейс 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;

(последний комплект - хорошая уборка)

Тогда я смог сделать свой импорт. Когда я посмотрел на мой экспорт MySQL, он добавил ограничения в конце импорта, после того, как данные на месте. Если ваш импорт MySQL накладывает ограничения до того, как данные на месте, это помешает импорту работать полностью.

1 голос
/ 31 декабря 2011

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

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

cat your_mysql_dump_file.sql | mysql -uyour_user -p myDB_NAME
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...