Magento - базовая таблица core_file_storage не существует - PullRequest
4 голосов
/ 02 июня 2011

Когда я просматриваю журнал ошибок для моего магазина Magento, он полон этих ошибок:

[02-Jun-2011 13:49:12] 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
Stack trace:
#0 /home/mysite/public_html/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /home/mysite/public_html/lib/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#2 /home/mysite/public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#3 /home/mysite/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `e`.* FR...', Array)
#4 /home/mysite/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(337): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `e`.* FR...', Array)
#5 /home/mysite/public_html/lib/Zend/Db/Adapter/Abstract.php(753): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)
#6 /home/mysite/public_html/app/code/core/Mage/Core/Model/Mysql4/File/Storag in /home/mysite/public_html/lib/Zend/Db/Statement/Pdo.php on line 234

Кто-нибудь знает, как решить эту проблему?

Ответы [ 8 ]

7 голосов
/ 07 июня 2011

Очевидно, у меня еще нет привилегий комментировать ответ Даниэля, поэтому я добавляю его как отдельный ответ. Пользователь a1anm также задал вопрос на форуме Magento. Там пользователь furnitureforyoultd ответил на вопрос двумя разными запросами .

Сначала , если у вас еще нет core_directory_storage, запустите:

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;
3 голосов
/ 22 июня 2011

Это проблема в ядре Magento, которая добавлена ​​в трекер и будет исправлена.

Однако вы должны знать, что источником этой ошибки является то, что у вас есть URL-адрес несуществующего файла. Единственная проблема в ядре Magento состоит в том, что оно выдает «Неустранимая ошибка» вместо отображения страницы 404.

Чтобы устранить эту проблему, проверьте, почему вы получаете URL-адрес несуществующего файла. Либо права на вашу папку мультимедиа и подпапки должны быть установлены правильно - например, 777 (иначе изображения там не создаются) или URL сформирован неправильно.

3 голосов
/ 22 июня 2011

Не следует создавать таблицы вручную, просто проверьте разрешения для папки media (должно быть 777 ).

1 голос
/ 17 июня 2011

Эти таблицы в основном используются для хранения загруженных изображений для каждого продукта.

Кроме того, если в качестве хранилища по умолчанию для носителя заданы файлы, а не база данных, magento попытается найти каждое изображение в файле.система, но в случае сбоя она попытается найти ее в базе данных.

Пожалуйста, проверьте, находятся ли изображения вашего продукта в папке мультимедиа (обычно media / catalog / product / {az | 0-9}/ averageaz|0-9casts/yourimage.jpg) в противном случае даже после создания этих таблиц вы получите только ошибку 404 Не найдено при запросе этих файлов.

0 голосов
/ 09 февраля 2013

Пропущенные таблицы могут быть созданы системой автоматически, все что вам нужно сделать, это перейти по адресу:

System > Configuration
System (Advanced menu) > "Storage Configuration for Media" tab

и выберите сохранение медиа-файлов в БД, а затем отключите его после завершения синхронизации. Это создаст недостающие таблицы.

0 голосов
/ 02 февраля 2013

Если вы будете использовать хранилище файловой системы, Убедитесь, что для вашего каталога / media установлено значение 777, а также выполните chmod -R o+w media.Если ошибка не устранена, самый простой способ решения проблемы заключается в следующем:

  1. Перейдите в СИСТЕМА> КОНФИГУРАЦИЯ> ДОПОЛНИТЕЛЬНЫЕ> СИСТЕМА и переключите «Конфигурация хранилища для носителя» на «База данных».Нажмите СИНХРОНИЗИРОВАТЬ.Подождите, пока процесс синхронизации не закончится или не истечет время ожидания (вероятно, в зависимости от ваших настроек).Таблица "core_directory_storage" создана и заполнена.Нажмите SAVE CONFIG (не уверен, что этот шаг необходим, но все равно сделайте это).
  2. Если время синхронизации истекло, вы, скорее всего, увидите сообщение о серьезной ошибке в Magento Admin "Ошибка имеетпроизошло при синхронизации хранилищ данных. "Это не имеет значения, потому что на следующем шаге мы возвращаемся к файловому хранилищу мультимедиа.
  3. В той же настройке, настроенной на шаге 1, вернитесь к «Файловая система» и снова нажмите SYNCHRONIZE.Нажмите SAVE CONFIG (не уверен, что этот шаг необходим, но сделайте это в любом случае).
  4. Теперь перейдите к своему менеджеру баз данных (например, PHPMyAdmin) и удалите все строки в недавно созданной таблице, используя DELETE FROM * 1013.*.

Ваша таблица отсутствует Ошибка исчезла.

0 голосов
/ 04 января 2013

также, пожалуйста, обратите внимание, что если вы попытаетесь использовать недопустимые символы в названии продукта, например, в кавычках, это заставит magento попытаться создать миниатюру с этим символом в нем .. что приведет к сбою изображений, а magento будет попробуйте вызвать эти изображения из базы данных .. если вы не используете базу данных для хранения, вы увидите ошибку mysql

0 голосов
/ 14 сентября 2011

Эта проблема произошла со мной, и я должен дать разрешение 777 для папки мультимедиа.

...