Ich führe gerade ein Upgrade einer Magento 1.3 Installation auf die Version 1.5 durch. Dabei ist mir im System Log folgendes aufgefallen:
PHP Fatal error: Uncaught exception ‘PDOException’ with message ‘SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘core_file_storage’ doesn’t exist’.
Nach ein wenig suchen im Magento Core ist mir aufgefallen, dass diese Tabellen “on the fly” anlegt werden. Jedoch nur wenn die Datenbank als Cache-Backend verwendet wird. Der Fehler hat bei mir nur das Log voll geschrieben. Der Shop war nicht beeinträchtigt.
Die Lösung ist folgender Schnippsel:
/** @var $model Mage_Core_Model_File_Storage_Directory_Database */ $model = Mage::getModel('core/file_storage_directory_database'); $model->prepareStorage(); /** @var $model Mage_Core_Model_File_Storage_Database */ $model = Mage::getModel('core/file_storage_database'); $model->prepareStorage();
Wichtig ist dabei die Reihenfolge! Die zweite Tabelle erstellt Foreign Keys auf die erste. Das ganze habe ich in ein Update Script eines der Module gepackt und nun werden sie einfach einmalig erstellt.