Tabel mana yang harus dikosongkan saat membersihkan cache yang disimpan database secara manual?


13

Sebelum ke D8 untuk menghapus cache secara manual, seseorang dapat memotong semua tabel yang dimulai dengan cache_.

Di Drupal 8 masih ada tabel yang dimulai dengan cache_, tetapi ada juga cachetagstabel.

Apakah saran dalam D8 masih terpotong cache_*jika Anda perlu menghapus cache secara manual? Apakah aman / wajib / direkomendasikan untuk memotong cachetagsmeja bersama dengan cache_*tabel?

Saya sadar mungkin ada modul contrib yang melakukan berbagai hal secara berbeda, saya sebagian besar tertarik pada inti apa yang dilakukan, dan apa yang dianggap "praktik terbaik" untuk Drupal 8 secara umum.


Anda bisa melihat apa yang dikosongkan semua tombol cache.
Eyal


Semua tabel cache aman untuk dipotong, meskipun tidak sepenuhnya menghapusnya.
hamza.gt

Jawaban:


6

Dalam drupal 8 jika Anda mencari tabel aman yang perlu dihapus secara manual kemudian hapus tabel yang dimulai dengan cache_ dan juga memotong tabel cachetags juga.

Jika Anda menggunakan drush maka gunakan perintah ini untuk menghapus cache-

cache membangun kembali


3

Menurut artikel cachetags ini diatur ketika objek cache sedang disimpan, sehingga harus aman untuk memotong tabel ini juga. Cachetags mengidentifikasi objek cache dan Anda bisa mendapatkan semua objek terkait sekaligus.


Saya diuji dan tabel dapat dipotong tanpa masalah (atau hanya dengan masalah kinerja potensial). Itu dibuat kembali ketika entitas dimuat tapi ... Saya tidak tahu mengapa jika Anda menghapus instance entitas tag yang disimpan dalam cap tag sudah ada di tabel. Saya hal yang harus dihapus.
estoyausente

Saya berasumsi data dari tabel cachetag dibuat ulang pada cron run dan apa yang Anda lihat setelah penghapusan entitas hanyalah sisa
Paul Bönisch

0

Ini sangat berguna. Ganti dbname sesuai kebutuhan:

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};

0

Anda bisa melakukan ini untuk satu kalimat:

drush sqlq "TRUNCATE cache_default;TRUNCATE cache_bootstrap;TRUNCATE cache_container;TRUNCATE cache_discovery;TRUNCATE cache_data;" -l <uri> --no-interaction

Tambahkan sebanyak mungkin dengan awalan cache_ yang Anda inginkan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.