4

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

誰もがこれを解決する方法を知っていますか?

4

8 に答える 8

7

どうやら私はまだダニエルの答えにコメントする権限を持っていないので、これを別の答えとして追加しています。ユーザー a1anm も Magento Forum で質問をしました。そこでは、ユーザー furnitureforyoultd が2 つの異なるクエリで質問に回答しました。

最初に、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;
于 2011-06-07T09:34:04.913 に答える
3

トラッカーに追加され、修正されるのは Magento コアの問題です。

ただし、このエラーの原因は、存在しないファイルへの URL を持っていることにあることに注意してください。Magento コアの唯一の問題は、404 ページを表示する代わりに「致命的なエラー」をスローすることです。

この問題を解決するには、存在しないファイルへの URL を取得する理由を確認してください。Media フォルダとサブフォルダに対する権限を適切に設定する必要があります。たとえば、777 (そうしないと画像がそこに作成されません) または URL の形式が間違っています。

于 2011-06-22T10:13:44.163 に答える
3

テーブルを手動で作成しないでください。メディアフォルダーのアクセス許可を確認してください ( 777である必要があります)。

于 2011-06-22T09:47:18.690 に答える
1

これらのテーブルは、主に各製品のアップロードされた画像を保存するために使用されます。

さらに、メディアのデフォルト ストレージがデータベースではなくファイルに設定されている場合、magento はファイル システムで各イメージを検索しようとしますが、失敗した場合はデータベースで検索しようとします。

商品画像がメディア フォルダー (通常は media/catalog/product/{az|0-9}/{az|0-9}/yourimage.jpg) にあるかどうかを確認してください。これらのファイルを要求すると、404 Not found エラーが返されます。

于 2011-06-17T02:03:33.477 に答える
0

この問題が発生したため、メディア フォルダーに 777 のアクセス許可を与える必要があります。

于 2011-09-14T01:47:25.013 に答える
0

また、製品のタイトルに違法な文字 (引用など) を使用しようとすると、magento がこの文字を含むサムネイルを作成しようとすることに注意してください。画像が失敗し、magento が呼び出しを試みますデータベースからのこれらの画像..ストレージにデータベースを使用していない場合は、mysql エラーが表示されます

于 2013-01-04T14:53:54.417 に答える
0

不足しているテーブルは、システムによって自動的に作成されます。次の場所に移動するだけです。

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

メディア ファイルを DB に保存することを選択し、同期の完了後にオフにします。これにより、不足しているテーブルが作成されます。

于 2013-02-09T12:15:21.453 に答える