Czy dowolną pamięć podręczną_ * można bezpiecznie opróżnić?

14

Czasami podczas przenoszenia bazy danych może być ona zbyt duża. Czy każdą z prefiksowanych tabel „cache_” można opróżnić bez powodowania problemów?

WestieUK
źródło
2
Jak dotąd nie spotkałem żadnych problemów, obcinając te tabele.
GoodSp33d

Odpowiedzi:

14

Z jednym wyjątkiem tak. Ten wyjątek to cache_form. To nie jest właściwie tabela pamięci podręcznej, ale zawiera tymczasowe informacje $ form_state o formularzach aktualnie wyświetlanych w Twojej witrynie. Wyczyszczenie tej tabeli spowoduje unieważnienie tych formularzy, a kiedy użytkownik spróbuje przesłać ten formularz, otrzyma komunikat o błędzie i będzie musiał ponownie wypełnić ten formularz.

Zauważ, że drush sql-dumporaz Backup i Migruj automatycznie pomijają zawartość tych i innych tabel podczas tworzenia zrzutu bazy danych z nimi zamiast mysqldump lub phpmyadmin.

Berdir
źródło
drush sql-dump faktycznie zawiera tabelę „cache_form”.
ciesz się
@remote: Nie chciałem sugerować inaczej (chociaż nie wiedziałem, że wyraźnie zachowuje cache_form). Możesz edytować (lub sugerować edycję), jeśli uważasz, że moja odpowiedź jest myląca.
Berdir
4

Na tej liście znajduje się „fałszywy przyjaciel”. cache_form nie jest tabelą pamięci podręcznej, a jej opróżnienie spowoduje unieważnienie wszystkich formularzy aktywnych na stronie w tym momencie.

Nie widzę też powodu, dla którego używałbyś do tego phpmyadmina. Jest niezgrabny i podatny na błędy. „drush cc all” to twój przyjaciel :)

Bojan Zivanovic
źródło
3

Tabele pamięci podręcznej służą do przechowywania obliczonych wartości. Gdy moduł wywołuje cache_get () i odzyskuje pustą wartość, po prostu wykonuje kod, aby odzyskać buforowane wartości.
Wszystkie moduły, które znam, automatycznie wykonują kod, aby uzyskać wartość oczekiwaną w pamięci podręcznej, jeśli pamięć podręczna jest pusta; opróżnienie pamięci podręcznej nie powoduje żadnego problemu dla modułów, które z niej korzystają.

kiamlaluno
źródło
3

Robiłem to wiele razy i nie znalazłem żadnego problemu.

Ważna uwaga - spróbuj wyczyścić wszystkie tabele pamięci podręcznej na raz. Zapobiegnie to wykorzystaniu przez Drupal nieprawidłowych danych z pamięci podręcznej.

j2r
źródło
Mam bardzo ważne dane w tych tabelach, czy jesteś 120% pewien? ;)
Mohammad Ali Akbari,
Tak, ale w przypadku bardzo ważnych danych najpierw wykonaj kopię zapasową. :)
j2r
2
@MohammadAliAkbari Jeśli masz ważne dane, to naprawdę powinny być przechowywane gdzie indziej, a także tabele pamięci podręcznej ...
Chapabu,
@ j2r, ja też, zrobiłem to kilka razy. Nie ma problemu. +1
Sithu,
@Chapabu Mam na myśli, że strona jest ważna, sam nie przechowywałem żadnych ważnych danych
Mohammad Ali Akbari,