Magento catalog_category_flat_store_1不存在

时间:2013-10-16 08:18:40

标签: php magento categories product

我有一个运行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(Array)

我可以看到该表实际存在于数据库中,可以从服务器访问。但是,错误报告表明找不到它。

我到目前为止,

- 清除缓存

- 重建索引

- 删除了表并再次重建了索引,以便自动创建它并且确实如此。

任何人都可以对此有所了解吗?

3 个答案:

答案 0 :(得分:1)

我之前发生过这种情况。这通常发生在数据库在索引过程中崩溃,并且表被损坏或删除时。

我这样做:

  1. 从数据库中删除 catalog_category_flat_store_1 (如果存在)(完全删除)。

  2. 在新数据库上安装新的Magento实例(或使用其他预先存在的Magento数据库)

  3. 从新的(或现有的Magento数据库)中,将 catalog_category_flat_store_1 克隆到您的Magento数据库(出现错误的数据库)。

  4. 重新索引您的网站 - 特别是Category Flat Data索引。

答案 1 :(得分:0)

昨天晚上我遇到了同样的问题,但是这个表似乎存在并且今天正常使用/更新。也许它已经崩溃并且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')  

答案 2 :(得分:0)

可以通过重建索引解决此问题。

您必须运行目录类别Flat Reindex

您可以从Magento后端执行此操作:系统 - > 索引管理 或通过ssh。

使用SSH转到shell目录并运行php -f indexer.php -- -reindex catalog_category_flat

希望这会对你有所帮助。