Magento – Невозможно переопределить цены на продукцию – Нарушение внешнего ключа не работает

Недавно я обновил свой магазин magento с 1.4.2 до 1.7.0.2 .. И обновление прошло гладко, но когда я пытаюсь повторно проиндексировать данные после обновления .. Это не удается в ценах на продукцию.

Я попытался использовать php shell/indexer.php --reindexall из SSH, и с этими ошибками он не справляется с ценами на продукты (я использую pastebin, поскольку ошибка довольно длинная):

http://pastebin.com/iV2tuzDX

Из того, что я вижу, таблица catalog_product_index_tier_price пуста .. и я не уверен, что это вызывает какие-либо проблемы?

Я пробовал много разных способов его решения, но безрезультатно .. Такие вещи, как:

  • Нельзя переопределять новые продукты после обновления до версии 1.6. <- Я пробовал ответить Виджаем Кумаром
  • http://www.magentocommerce.com/boards/v/viewthread/312438/#t429612 <- Я пробовал flushing /site/var/locks
  • Magento: ограничение внешнего ключа завершается после обновления 1.4 -> 1.7 <- Я пробовал ответ Тобиаса Зандера

Ни один из них не работал. Я не эксперт в MySQL, но я знаю немного. Поэтому я надеюсь, что кто-то сможет узнать, что вызывает ошибку, и помочь мне, и я считаю, что это может также помочь другим, кто испытывают ту же проблему, что и я 🙂

Спасибо! ~

    Решение :

    Пожалуйста, выполните следующие действия:

    Включить ведение журнала Magento DB через: lib / Varien / Db / Adapter / Pdo / Mysql.php. Внизу вокруг строки 86 вы увидите следующие переменные класса:

     protected $_debug = false; protected $_logAllQueries = false; protected $_logCallStack = false; protected $_debugFile = 'var/debug/sql.txt'; 

    Измените все на true и запустите повторный индекс. Затем проверьте файл журнала, указанный выше.

    Файл журнала указывает, какая таблица в базе данных вызывает проблему, а затем сравнивает структуру таблицы этой таблицы с тем же самым: http://www.magereverse.com/index/magent-database-diagram/version/1- 7-0-2

    Удалите столбец, которого не должно быть. Проблема будет исправлена. С уважением.

    у меня такая же проблема, журналы сказали что-то вроде этого

     exception 'PDOException' with message 'SQLSTATE[21S01]: Insert value list does not match column list ... 

    когда я отслеживал исключения и запросы, которые вызывали ошибку, я обнаружил, что обновление не было выполнено должным образом, некоторые столбцы отсутствовали в базе данных, связанной с ценой индекса продукта. я должен был добавить их снова (снова запустив файл установки, связанный с ценой группы атрибутов продукта), и он работал как шарм.