Ich habe eine Website in Symfony mit einer MySQL-Datenbank verknüpft. Die Website hat einige Probleme, daher muss ich die Informationen in der Datenbank aktualisieren. Die Sache ist, wenn ich auf der Datenbank aktualisiere, bleibt es dort aktualisiert, aber auf der Website zeigt es keine Änderungen.
Zum Beispiel ist ein Benutzer registriert. Ich gehe zur Datenbank, um die E-Mail zu ändern, damit ich ein anderes Konto mit derselben E-Mail-Adresse registrieren kann. Die Datenbank wird mit der neuen E-Mail aktualisiert, aber auf der Website heißt es, dass die alte E-Mail immer noch verwendet wird.
Ich weiß, dass ich die richtige Datenbank aktualisiere, denn wenn ich einen neuen Kunden auf der Website registriere, erscheint er auf der Datenbank. Irgendwelche Ideen, warum dies passieren könnte?
Wie Angel Iliikov in den Kommentaren erwähnt, ist es sehr wahrscheinlich ein Caching-Problem. Die folgenden Vorschläge gehen davon aus, dass Sie Zugriff auf die Befehlszeile haben - was ein typischer Symfony-Benutzer tun sollte. Wenn Sie es noch nicht haben, können Sie bei den meisten Hosting-Anbietern SSH zugreifen.
Löschen Sie die folgenden Caches:
1. Symfonys Cache
Symfony speichert viele Daten in den Cache-Dateien, um zu verhindern, dass Anforderungen von Grund auf neu verarbeitet werden müssen. Wenn Symfony-Apps wackelig werden, ist es sehr üblich, diesen Cache zu löschen und es erneut zu versuchen. Der Cache wird standardmäßig mit einem Konsolenbefehl im Stammverzeichnis des Projekts gelöscht:
%Vor%Wenn Sie auf Probleme stoßen, David Soussans Antwort bietet weitere Informationen zu diesem Thema.
2. Doktrin-Cache
Laut Kommentatoren auf eine andere Frage (von mir formatiert):
Der Doktrin-Cache wird oft in apc und nicht in der Datei gespeichert System, so dass das Entfernen der Cache-Dateien nicht helfen würde. Der allgemeine
app/console cache:clear
ist nur für den symfony (app) -Cache. Ich glaube nicht, dass es die Doktrin-Cache (s) löscht.-Caponica
Alternativer PHP Cache (APC) ist eine optionale Komponente, die in php.ini
aktiviert ist. Es ist möglich, dass Doctrine dort auch Informationen zwischenspeichert, wenn es aktiviert ist.
Die angenommene Antwort auf die zuvor erwähnte Frage liefert eine Antwort zum Löschen von Doctrines Cache :
%Vor%-amitchhajer
3. Der Cache Ihres Browsers
Dies ist sehr unwahrscheinlich, dass Probleme auftreten. Aber wenn Sie etwas tun, um Caching-Header über HTTP zu senden - ist es möglich, dass die Anwendung die Daten korrekt aktualisiert hat, aber Ihr Browser eine alte Seite anzeigt.
Jeder Browser hat eine andere Möglichkeit, den Cache zu löschen. Google bietet Unterstützung für Chrome . und Mozilla bietet Unterstützung für wie es in Firefox funktioniert.
Wenn das Löschen des Caches Ihr Problem nicht löst, liegt wahrscheinlich ein Problem mit Ihrer Anwendung oder Ihrem Workflow vor und Sie müssen debuggen. Ein paar Dinge, die Sie ausprobieren können:
Stellen Sie sicher, dass Sie die richtige -Datenbank wirklich aktualisiert haben. Bestätige dies auf zwei separaten DB-Clients.
Erstellen Sie Ihre eigene Symfony Befehl wo das einzige, was Sie tun ist, die Datenbank abzufragen. Wenn es das richtige Ergebnis zurückgibt, sollten Sie überprüfen, dass andere Komponenten dieselbe Abfrage verwenden. Wenn nicht, überprüfen Sie Ihre Konfiguration / Parameter, um sicherzustellen, dass Sie die richtige Datenbank verwenden.
Wenn Ihre Symfony-Anwendung den aktualisierten Datenbankeintrag nicht anzeigt, weil sie den Cache verwendet, der noch die alten Daten enthält. Dies ist oft ein Problem mit Symfony, das Aktualisieren der Seite wird nur neu aus dem Cache geladen. Löschen Sie zuerst den Cache. Nun, sehr oft cache: clear funktioniert nicht von der Kommandozeile, ich habe es die ganze Zeit passiert und nie wirklich verstanden warum. Die Antwort ist, nur alle Cache-Dateien zu löschen, wie der Tipp von Fabien Potencier besagt: Ссылка . Das funktioniert und ist meine Go-to-Lösung für wenn z. Composer Update löschte den Cache danach nicht mehr. Tatsächlich habe ich mir angewöhnt, die Cache-Dateien auf meinem Dev-Rechner einfach zu löschen, bevor ich den Composer installiere oder aktualisiere.
Adam,
Verwenden Sie diese Befehle, um Ihren Cache zu löschen:
%Vor%Ich hatte Probleme mit der mysql-Datenbank, die mein Host-Server als erstes zur Verfügung stellte, aber dann installierte ich die neueste mysql-Datenbankversion in softaculus in meinem Host-Server und konnte dann auf mysql innerhalb von softaculus oder direkt von der URL (www .mypage.com / mysql). Endlich klappt es perfekt. Sie können versuchen, etwas Ähnliches zu tun.