Fixing Magento’s core_file_storage and core_directory_storage Problems
I came across hundreds of entries in our store that look like the below:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mysite_mysite.core_file_storage' doesn't exist' in /home/mysite/public_html/lib/Zend/Db/Statement/Pdo.php:228 Magentois trying to pull up an image that doesn't exist. This is a bug in Magento 1.5.x (1.5.1 in my case) and can be fixed by running the following two SQL queries on your DB.CREATE TABLE `core_directory_storage` ( `directory_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL DEFAULT '', `path` VARCHAR(255) NOT NULL DEFAULT '', `upload_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `parent_id` INT(10) UNSIGNED NULL DEFAULT NULL, PRIMARY KEY (`directory_id`), UNIQUE INDEX `IDX_DIRECTORY_PATH` (`name`, `path`), INDEX `parent_id` (`parent_id`), CONSTRAINT `FK_DIRECTORY_PARENT_ID` FOREIGN KEY (`parent_id`) REFERENCES `core_directory_storage` (`directory_id`) ON UPDATE CASCADE ON DELETE CASCADE ) COMMENT='Directory storage' COLLATE='utf8_general_ci' ENGINE=InnoDB ROW_FORMAT=DEFAULT;CREATE TABLE `core_file_storage` ( `file_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `content` LONGBLOB NOT NULL, `upload_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `filename` VARCHAR(255) NOT NULL DEFAULT '', `directory_id` INT(10) UNSIGNED NULL DEFAULT NULL, `directory` VARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY (`file_id`), UNIQUE INDEX `IDX_FILENAME` (`filename`, `directory`), INDEX `directory_id` (`directory_id`), CONSTRAINT `FK_FILE_DIRECTORY` FOREIGN KEY (`directory_id`) REFERENCES `core_directory_storage` (`directory_id`) ON UPDATE CASCADE ON DELETE CASCADE ) COMMENT='File storage' COLLATE='utf8_general_ci' ENGINE=InnoDB ROW_FORMAT=DEFAULT;
