Wyczyść pamięć podręczną bez logowania

10

Dodałem instrukcję if wokół treści renderowania php w moim pliku page.tpl.php. Jedynym problemem jest to, że popełniłem błąd i przypadkowo uniemożliwiłem mu renderowanie treści na dowolnej stronie. Wyczyściłem pamięć podręczną i wylogowałem się, aby ją przetestować, i zdając sobie sprawę z mojego błędu, poprawiłem plik szablonu. Ale teraz nie mogę się ponownie zalogować, aby wyczyścić pamięć podręczną, ponieważ moja witryna nie będzie wyświetlać treści, a zatem nie będzie renderować pola logowania.

Czy ktoś może mi dać Drupalowi 7 sposób na zalogowanie się bez pola logowania w (jak sposób renderowania pola logowania osobno dla zawartości) lub sposób wyczyszczenia pamięci podręcznej?

JamiePatt
źródło
2
Jeśli masz dostęp do bazy danych tylko uruchomić TRUNCATE TABLE table_namena cachestole i wszystkich innych tabel rozpoczynającecache_
Clive
2
Jeśli masz zainstalowanego drusha, możesz to zrobić drush ccz terminala, stojąc w katalogu głównym drupala.
Cyclonecode
Na twojej stronie tpl po prostu uruchom drupal_flush_all_caches ();
Anil Sagar

Odpowiedzi:

12

ja. Jeśli masz zainstalowany Drush (http://drupal.org/project/drush) - jeśli go nie masz, pomyśl o tym następnym razem :), otwórz konsolę (WIN + R) w systemie Windows lub Ctrl + Alt + T w systemie Linux wskaż folder swojej witryny (np. cd /www/mydrupalsite/I wpisz:

 $ drush cc all

z linii poleceń.

ii. Inną metodą jest zalogowanie się do phpmyadmin, wybranie tabel cache_ i opróżnienie / opróżnienie.

drupal_stuff_alter
źródło
6

Najlepszym rozwiązaniem, jakie znalazłem na końcu, było zrobienie tego przez phpmyadmin. Zalogowałem się i opróżniłem wszystkie tabele, które miały „pamięć podręczną” na początku ich nazwy. Łatwe, jeśli nie pracujesz w pośpiechu.

JamiePatt
źródło
Powtarzanie odpowiedzi drupal_stuff_alter w części bez żadnych dodatkowych informacji jest mało przydatne, a moim zdaniem bardzo lekceważące pojęcie tej strony. Nie mogę nawet założyć, dlaczego chcesz wykoleić ludzi, którzy znajdą to pytanie w przyszłości, publikując i akceptując odpowiedź, która odrzuca drushmetodę, która zajmuje wyraźnie mniej czasu i wysiłku, a na dodatek jest zamierzonym sposobem.
TheThirdMan
5

Oprócz opcji wymienionych powyżej, jako ostatni wysiłek rowu możesz wywołać tę funkcję drupal_flush_all_caches(), aby wyczyścić wszystkie pamięci podręczne.

Możesz to zrobić, umieszczając poniższy kod w pliku php w katalogu głównym dokumentu i odwiedzając go w przeglądarce:

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
drupal_flush_all_caches();

Nie testowałem tego kodu i upewnij się, że został usunięty po wyczyszczeniu pamięci podręcznej.

Phizes
źródło
Zauważ, że musisz najpierw zdefiniować stałą DRUPAL_ROOT. Pierwotnie nie był pokazywany w przykładzie kodu, więc dodałem trochę białych znaków, więc teraz pokazuje.
Ryan Szrama
2

Możesz ustawić

$update_free_access = TRUE;

w settings.php (około linii 226) i przejdź do /update.php. Spowoduje to wyczyszczenie pamięci podręcznej.

mymwbg
źródło
0

Możesz wyczyścić pamięć podręczną Drupal, wykonując następujące polecenie w konsoli poleceń Windows lub z pliku .bat (lub z konsoli Linux):

php -r "zdefiniuj ('DRUPAL_ROOT', '../web'); chdir (DRUPAL_ROOT); definiuj ('MAINTENANCE_MODE', 'update'); global $ _SERVER; $ _SERVER ['REMOTE_ADDR'] = '127.0.0.1 '; requ_once DRUPAL_ROOT.' / include / bootstrap.inc '; drupal_bootstrap (DRUPAL_BOOTSTRAP_FULL); drupal_flush_all_caches (); "

Upewnij się tylko, że DRUPAL_ROOT w kodzie wskazuje katalog Drupal.

Wiaczesław Pietrow
źródło
0
delete from cache where cid <> '';
delete from cache_block where cid <> '';
delete from cache_bootstrap where cid <> '';
delete from cache_field where cid <> '';
delete from cache_filter where cid <> '';
delete from cache_path where cid <> '';
delete from cache_libraries where cid <> '';
delete from cache_image where cid <> '';
delete from cache_page where cid <> '';
delete from cache_token where cid <> '';
delete from cache_update where cid <> '';
delete from cache_views where cid <> '';
delete from cache_views_data where cid <> '';
Ashish Madkaikar
źródło