У меня есть существующий магазин Magento CE 1.7. Внезапно с сегодняшнего утра (без каких-либо обновлений кода), я получаю следующую ошибку:
a: 5: {i: 0; s: 111: «SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 Таблица« XXXXXX.catalog_category_flat_store_1 »не существует»; i: 1; s: 5914: «# 0 /var/www/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo -> _ execute (массив)
Я вижу, что таблица фактически существует в базе данных и может быть доступна с сервера. Однако отчет об ошибке указывает, что он не найден.
Я до сих пор,
– Очищенный кэш
– Восстановленные индексы
– Удалил таблицу и снова перестроил индекс, чтобы он автоматически создавался и выполнялся.
Может ли кто-нибудь рассказать об этом?
Раньше это случалось. Обычно это происходит, когда база данных сбой во время процесса индексирования, и таблица повреждается или удаляется.
Я делаю следующее:
Выйдите из каталога catalog_category_flat_store_1 из базы данных, если она существует (полностью удалите ее).
Установите новый экземпляр Magento в новую базу данных (или используйте другую существующую базу данных Magento)
Из новой (или существующей базы данных Magento) клонируйте каталог_category_flat_store_1 в вашу базу данных Magento (ту, которая имеет ошибку).
Переиндексируйте свой сайт – в частности, индекс Category Flat Data
.
У меня была такая же проблема вчера вечером, но таблица, похоже, существует и используется / обновляется, как обычно сегодня. Возможно, он разбился, и mysql исправил его автоматически (но я не уверен в этом), но он нормально функционирует снова.
Журнал останова:
#1 /public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array) #2 public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `main_table`.* FROM `catalog_category_flat_store_1` AS `main_table` WHERE (entity_id IN ('258', '38', '3', '1')) AND (custom_use_parent_settings = 0) AND (level != 0) ORDER BY `level` DESC', Array) #3 public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(337): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `main_table`.* FROM `catalog_category_flat_store_1` AS `main_table` WHERE (entity_id IN ('258', '38', '3', '1')) AND (custom_use_parent_settings = 0) AND (level != 0) ORDER BY `level` DESC', Array) #4 public_html/lib/Zend/Db/Adapter/Abstract.php(753): Varien_Db_Adapter_Pdo_Mysql->query(Varien_Db_Select, Array) #5 public_html/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat.php(1108): Zend_Db_Adapter_Abstract->fetchRow(Varien_Db_Select) #6 public_html/app/code/core/Mage/Catalog/Model/Category.php(841): Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Flat->getParentDesignCategory(Mage_Catalog_Model_Category) #7 public_html/app/code/core/Mage/Catalog/Model/Design.php(348): Mage_Catalog_Model_Category->getParentDesignCategory(Mage_Catalog_Model_Category) #8 public_html/app/code/core/Mage/Catalog/Helper/Product/View.php(49): Mage_Catalog_Model_Design->getDesignSettings(MDN_AdvancedStock_Model_Catalog_Product) #9 public_html/app/code/core/Mage/Catalog/Helper/Product/View.php(144): Mage_Catalog_Helper_Product_View->initProductLayout(MDN_AdvancedStock_Model_Catalog_Product, Mage_Catalog_ProductController) #10 public_html/app/code/core/Mage/Catalog/controllers/ProductController.php(132): Mage_Catalog_Helper_Product_View->prepareAndRender(3790, Mage_Catalog_ProductController, Varien_Object) #11 public_html/app/code/local/Mage/Core/Controller/Varien/Action.php(422): Mage_Catalog_ProductController->viewAction() #12 public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(253): Mage_Core_Controller_Varien_Action->dispatch('view') #13 public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Mage_Core_Controller_Request_Http) #14 public_html/app/code/core/Mage/Core/Model/App.php(340): Mage_Core_Controller_Varien_Front->dispatch() #15 public_html/app/Mage.php(627): Mage_Core_Model_App->run(Array) #16 public_html/index.php(80): Mage->run('', 'store')
Эта проблема может быть решена путем переиндексации.
Вам нужно запустить Категория каталога Flat Reindex .
Вы можете сделать это из бэкэнда Magento: System -> Управление индексами или через ssh.
С помощью SSH перейдите в каталог оболочки и запустите php -f indexer.php -- -reindex catalog_category_flat
Надеюсь, это поможет вам.