【Drupal】キャッシュをクリアする方法

こちらのサイトではDRUPAL10に関連する記事を掲載しています。

Drupal でキャッシュをクリアする方法をざっとまとめました。

管理者画面でキャッシュをクリアする

以下のURLパラメータで管理者画面のぱふぉーまを開きます。

/admin/config/development/performance 

すべてのキャッシュをクリアのボタンをクリックします。

または、Drupalのアイコンをマウスオーバーするとすべてのキャッシュをフラッシュする メニューが表示されますので、キャッシュクリアの対象を選択します。

Drushコマンドでキャッシュをクリアする

コマンドプロンプトから以下のDrushコマンドを実行します

drush cache-rebuild
//or you can use
drush cr

コードでキャッシュをクリアする

キャッシュをクリアしたい場合は、この方法を使用するだけです。

drupal_flush_all_caches();

ちなみにDrupal7以前はこのコマンドでした。

cache_clear_all() // For Drupal-7

他にもキャッシュをクリアする方法はあります。

$variables['#cache']['max-age'] = 0;

\Drupal::service('page_cache_kill_switch')->trigger();

レンダー キャッシュなどの特定のキャッシュをクリアしたい場合は 次のコードを実行できます。

\Drupal::service('cache.render')->invalidateAll();

ルート キャッシュなどの特定のキャッシュをクリアしたい場合は、次のコードを実行できます。

\Drupal::service("router.builder")->rebuild();

キャッシュクリア用のphpを実行する

Drupalドキュメントルートに存在するphpファイル /update.php を実行することでクリアすることも可能です。

SQLコマンドでデータベースのキャッシュを直接クリアする

「cache_」で始まるテーブル内のすべてのデータを削除します。

TRUNCATE cache_config;
TRUNCATE cache_container;
TRUNCATE cache_data;
TRUNCATE cache_default;
TRUNCATE cache_discovery;
TRUNCATE cache_dynamic_page_cache;
TRUNCATE cache_entity;
TRUNCATE cache_menu;
TRUNCATE cache_render;
TRUNCATE cache_toolbar;

さいごに

Chacheの仕組みを正しく理解していないと、DrupalのサービスAPIでデータベースを更新したけれども、表示されないなどの現象が発生します。また不必要にキャッシュをクリアするとせっかくのキャッシュ機能が活かせずにパフォーマンスが低下します。キャッシュを使うときは正しく理解して使ましょう。

参考URL

Clear cache programmatically in Drupal 8
in this tuto, I'll show you the methods for clearing or rebuilding Drupal 8 cache programmatically and using admin UI, update.php, drush, SQL, ...
このサイトに関するご意見・ご質問はこちらまで

この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました