È possibile svuotare la cache_ * in modo sicuro?


14

A volte quando si sposta il database può essere troppo grande. È possibile svuotare una delle tabelle con prefisso "cache_" senza causare problemi?


2
Finora non ho riscontrato alcun problema troncando queste tabelle.
GoodSp33d

Risposte:


14

Con una sola eccezione, sì. Questa eccezione è cache_form. Questa non è in realtà una tabella cache ma contiene informazioni temporanee $ form_state dei moduli attualmente visualizzati sul tuo sito. Cancellare quella tabella invaliderebbe questi moduli e quando un utente tenta quindi di inviare quel modulo, riceverà un messaggio di errore e dovrà compilare nuovamente quel modulo.

Si noti che drush sql-dumpe backup e migrazione lasciare automaticamente il contenuto di questi e di altri tavoli durante la creazione di un dump del database con questi invece di mysqldump o phpMyAdmin.


drush sql-dump include effettivamente la tabella 'cache_form'.
cjoy

@remote: non intendevo implicare diversamente (anche se non sapevo che mantenesse esplicitamente cache_form). Sentiti libero di modificare (o suggerire una modifica) se ritieni che la mia risposta sia fuorviante.
Berdir,

4

C'è un "falso amico" in quella lista. cache_form non è una tabella cache e lo svuotamento invaliderà tutti i moduli attivi sul sito in quel momento.

Inoltre non vedo un motivo per cui dovresti usare phpmyadmin per questo. È goffo e soggetto a errori. "drush cc all" è tuo amico :)


3

Lo scopo delle tabelle della cache è mantenere i valori calcolati. Quando un modulo chiama cache_get () e restituisce un valore vuoto, esegue semplicemente il codice per ottenere i valori memorizzati nella cache.
Tutti i moduli che conosco eseguono automaticamente il codice per ottenere il valore che si aspettavano nella cache, se la cache è vuota; svuotare la cache non causa alcun problema ai moduli che la utilizzano.


3

L'ho fatto molte volte e non ho riscontrato alcun problema.

Avviso importante: prova a cancellare tutte le tabelle della cache contemporaneamente. Ciò impedirà a Drupal di utilizzare dati della cache non validi.


Ho dati molto importanti in queste tabelle, sei sicuro al 120%? ;)
Mohammad Ali Akbari il

Sì, ma per i tuoi dati molto importanti esegui prima il backup. :)
j2r

2
@MohammadAliAkbari Se disponi di dati importanti, questi dovrebbero essere archiviati da qualche altra parte, così come le tabelle della cache ...
Chapabu,

@ j2r, anch'io, l'ho fatto più volte. Nessun problema. +1
Sithu,

@Chapabu Voglio dire che il sito è importante, non ho archiviato alcun dato importante da solo
Mohammad Ali Akbari,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.