D8より前に手動でキャッシュをクリアする前に、cache_
で始まるすべてのテーブルを切り捨てることができました。
Drupal 8には、cache_
で始まるテーブルがまだありますが、cachetags
テーブルもあります。
キャッシュを手動でクリアする必要がある場合でも、D [8]のアドバイスはcache_*
を切り捨てることですか? cache_*
テーブルとともにcachetags
テーブルを切り捨てることは安全/必須/推奨ですか?
私は別のことをしているcontribモジュールがあるかもしれないことを知っています、私はコアが何をするか、そして一般的にDrupal 8の「ベストプラクティス」と見なされるものに興味があります。
drupal 8では、手動でクリアする必要がある安全なテーブルを探している場合は、cache_で始まるテーブルをクリアし、cachetagsテーブルも切り捨てます。
Drushを使用している場合は、このコマンドを使用してキャッシュをクリアします。
ドラッシュキャッシュ再構築
この記事cachetags
によると、キャッシュオブジェクトが格納されているときに設定されるため、このテーブルも切り捨てても安全です。キャッシュタグはキャッシュオブジェクトを識別し、関連するすべてのオブジェクトを一度に取得できます。
これはとても便利です。必要に応じてdbnameを置き換えます。
DB_NAME="dbname"
mysql -uroot -proot --execute="SELECT concat('TRUNCATE TABLE ', TABLE_NAME, ';') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '${DB_NAME}' AND TABLE_NAME LIKE '%cache%'" | sed 1d | mysql -uroot -proot ${DB_NAME};
あなたはワンライナーのためにこれを行うことができます:
drush sqlq "TRUNCATE cache_default;TRUNCATE cache_bootstrap;TRUNCATE cache_container;TRUNCATE cache_discovery;TRUNCATE cache_data;" -l <uri> --no-interaction
必要なだけcache_接頭辞を付けて追加します。