web-dev-qa-db-ja.com

drupal 7テーブルまたはビューが見つからないというPDOExceptionエラー7 mysite_drupal.cache_views

完全な警告メッセージは次のようになります:PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mysite_drupal.cache_views' doesn't exist: TRUNCATE {cache_views} ; Array ( ) in cache_clear_all() (line 165 of /home/user/mysite.com/includes/cache.inc)。手動で作成する必要がありますか?

3
Ed523

はい。cache_viewsがなく、Viewsモジュールがインストールされている場合は、作成する必要があります。

そのためには、標準のキャッシュテーブルを複製し、名前をcache_viewsに変更します。それらは同じ列を共有します。

また、同じ列を使用してcache_views_dataテーブルを再作成する必要がある場合もあります。

3
Clive

Mysqlコマンドプロンプトから、あなたは行くことができます

show create table cache;

キャッシュテーブルのテーブル作成構文が表示されます。

テーブル名をcache_viewsに変更すると、そのSQLを使用してテーブルを再作成できます。

例えば:

CREATE TABLE `cache_views` (
  `cid` varchar(255) NOT NULL DEFAULT '' COMMENT 'Primary Key: Unique cache ID.',
  `data` longblob COMMENT 'A collection of data to cache.',
  `expire` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry should expire, or 0 for never.',
  `created` int(11) NOT NULL DEFAULT '0' COMMENT 'A Unix timestamp indicating when the cache entry was created.',
  `serialized` smallint(6) NOT NULL DEFAULT '0' COMMENT 'A flag to indicate whether content is serialized (1) or not (0).',
  PRIMARY KEY (`cid`),
  KEY `expire` (`expire`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Generic cache table for caching views...'

PHPでテーブルを作成することもできます:

$schema['cache_views'] = drupal_get_schema_unprocessed('system', 'cache');
db_create_table('cache_views', $schema['cache_views']);

同様の方法でcache_views_dataを再作成する必要がある場合もあります。

2
David Thomas