Ich hätte gerne Hilfe beim Löschen des Caches mit einem externen Skript. Ich habe ein Skript, das jede Nacht Knoten hinzufügt, und ich möchte auch, dass es den Ansichts-Cache so löscht - ohne die MySQL-Abfrage selbst erkennen zu müssen.
6
Wenn Sie ein Skript ausführen, profitieren Sie wahrscheinlich von der Verwendung von Drush . Mit den Befehlen Drush php-eval und php-script können Sie nach dem Booten von Drupal problemlos einen Ausschnitt aus dem PHP-Code aufrufen (wie in den Beispielen, die in anderen Antworten auf diese Frage gezeigt werden). Ohne Drush müssten Sie einen Webdienst einrichten und Ihren Code mit wget oder curl ausführen oder versuchen, den Drupal-Bootstrap-Code selbst aufzurufen. Besser noch, Drush verfügt sogar über einen integrierten Befehl zum Löschen des Caches, sodass Sie sich keine Gedanken über das Schreiben von PHP-Code machen müssen, wenn dies alles ist, was Sie mit Ihrem Skript tun möchten. Benutz einfach:
Möglicherweise möchten Sie auch mehr über Site-Aliase erfahren. Wenn Sie einen Alias mit dem Namen @site definieren, können Sie stattdessen Folgendes verwenden:
quelle
drush cc views
in Ihrem Skript als Benutzer mit dem richtigen Zugriff.drush cc views
; Drush-Befehle rufen jedoch normalerweise API-Funktionen ohne Zugriffsüberprüfung direkt auf. Es ist normalerweise nicht erforderlich, einen Benutzer anzugeben.Ich schlage vor, das Menü zu registrieren und es extern aufzurufen. Geben Sie beim Rückruf Ihren Code ein (Cache löschen).
und Sie können den Cache leeren, indem Sie diese URL aufrufen :
yoursite.com/customclearcache
.Auch wenn Sie damit den
drush
Cache gelöscht habendrush cc all
quelle
Der Cache kann am besten extern mit Drush-Befehlen geleert werden.
Sie könnten
drush cc
im Terminal verwenden und es wird Sie fragen, was genau Sie löschen möchten. Im Beispiel wird gefragt:Geben Sie eine Nummer ein, um den zu löschenden Cache auszuwählen.
Wählen Sie Ihre Option und Sie können den Cache extern löschen.
Weitere Informationen zum Drush und den Befehlen finden Sie auf der drush GitHub-Seite .
quelle
Wenn Sie den Cache extern leeren möchten, verwenden Sie am einfachsten Folgendes
drush
:Dies würde alle Drupal-Caches löschen (aber nicht alle Caches ). In Drupal 8 :
drush cr
.Eine andere Möglichkeit besteht darin, ein einfaches Skript zu schreiben, das alle Tabellen abschneidet / löscht, mit denen begonnen wird
cache_
, beispielsweise mit dem folgenden Einzeiler:quelle
TRUNCATE
diecache_views
Tabelle in der Datenbank.quelle