Peut-on vider le cache_ * en toute sécurité?

14

Parfois, lors du déplacement de la base de données, elle peut être trop volumineuse. Est-ce qu'une des tables préfixées "cache_" peut être vidée sans causer de problèmes?

WestieUK
la source
2
Je n'ai rencontré aucun problème jusqu'à présent, en tronquant ces tableaux.
GoodSp33d

Réponses:

14

À une exception près, oui. Cette exception estcache_form . Ce n'est pas réellement une table de cache, mais contient des informations temporaires $ form_state des formulaires actuellement affichés sur votre site. Effacer ce tableau invaliderait ces formulaires et lorsqu'un utilisateur essaie ensuite de soumettre ce formulaire, il recevra un message d'erreur et devra remplir à nouveau ce formulaire.

Notez que drush sql-dumpet Backup and Migrate omettent automatiquement le contenu de ces tables et d'autres lorsque vous créez un vidage de base de données avec ceux-ci au lieu de mysqldump ou phpmyadmin.

Berdir
la source
drush sql-dump inclut en fait la table 'cache_form'.
cjoy
@remote: Je ne voulais pas impliquer le contraire (même si je ne savais pas qu'il gardait explicitement cache_form). N'hésitez pas à modifier (ou suggérer une modification) si vous pensez que ma réponse est trompeuse.
Berdir
4

Il y a un "faux ami" dans cette liste. cache_form n'est pas une table de cache, et la vider invalidera tous les formulaires actifs sur le site à ce moment.

Je ne vois pas non plus de raison pour laquelle vous utiliseriez phpmyadmin pour cela. Il est maladroit et sujet aux erreurs. "drush cc all" est votre ami :)

Bojan Zivanovic
la source
3

Le but des tables de cache est de conserver les valeurs calculées. Lorsqu'un module appelle cache_get () et qu'il récupère une valeur vide, il exécute simplement le code pour récupérer les valeurs mises en cache.
Tous les modules que je connais exécutent automatiquement le code pour obtenir la valeur qu'ils attendaient dans le cache, si le cache est vide; vider le cache ne pose aucun problème aux modules qui l'utilisent.

kiamlaluno
la source
3

Je l'ai fait plusieurs fois et je n'ai trouvé aucun problème en le faisant.

Avis important - essayez d'effacer toutes les tables de cache en même temps. Cela empêchera Drupal d'utiliser des données de cache non valides.

j2r
la source
J'ai des données très importantes dans ces tableaux, êtes-vous sûr à 120%? ;)
Mohammad Ali Akbari
Oui, mais pour vos données très importantes, veuillez d'abord effectuer une sauvegarde. :)
j2r
2
@MohammadAliAkbari Si vous avez des données importantes, elles devraient vraiment être stockées ailleurs ainsi que les tables de cache ...
Chapabu
@ j2r, moi aussi, je l'ai fait plusieurs fois. Aucun problème. +1
Sithu
@Chapabu Je veux dire que le site est important, je n'ai moi-même stocké aucune donnée importante
Mohammad Ali Akbari