Avant D8 pour vider le cache manuellement, on pouvait tronquer toutes les tables commençant par cache_
.
Dans Drupal 8, il y a encore des tables commençant par cache_
, mais il y a aussi une table cachetags
.
Le conseil du D8 est-il encore de tronquer cache_*
si vous devez vider le cache manuellement? Est-il sûr/obligatoire/recommandé de tronquer la table cachetags
avec la cache_*
les tables?
Je suis conscient qu'il peut y avoir des modules contrib qui font les choses différemment, je suis surtout intéressé par ce que fait le noyau et ce qui est considéré comme "meilleure pratique" pour Drupal 8 en général.
Dans drupal 8 si vous recherchez les tables sûres qui doivent être effacées manuellement, effacez les tables commençant par cache_ et tronquez également la table cachetags.
Si vous utilisez drush, utilisez cette commande pour vider le cache-
drush cache-rebuild
Selon cet articlecachetags
sont définis lorsque les objets de cache sont stockés, il devrait donc être sûr de tronquer ce tableau également. Les cachetags identifient les objets du cache et vous pouvez obtenir tous les objets associés en même temps.
C'est très pratique. Remplacez dbname au besoin:
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};
Vous pouvez le faire pour un one-liner:
drush sqlq "TRUNCATE cache_default;TRUNCATE cache_bootstrap;TRUNCATE cache_container;TRUNCATE cache_discovery;TRUNCATE cache_data;" -l <uri> --no-interaction
Ajoutez autant de préfixes cache_ que vous le souhaitez.