完全な警告メッセージは次のようになります: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)
。手動で作成する必要がありますか?
はい。cache_viewsがなく、Viewsモジュールがインストールされている場合は、作成する必要があります。
そのためには、標準のキャッシュテーブルを複製し、名前をcache_viewsに変更します。それらは同じ列を共有します。
また、同じ列を使用してcache_views_dataテーブルを再作成する必要がある場合もあります。
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
を再作成する必要がある場合もあります。