2010-12-23 12 views
1

Ich habe Version 1.2.3 von Django mit Postgres konfiguriert, und ich ging nur, um eine manage.py Reset-App zu tun und es blieb nur warten und warten und warten. Also ich ctrl + z es um es zu töten.django. Ich kann keine Objekte fallen lassen

Also ging ich in die integrierte Admin-Schnittstelle und versuchte, einige Objekte zu löschen. Wenn ich ein Objekt löschte, wurde die Seite geladen und geladen und geladen, bis das Zeitlimit überschritten und das Objekt nie gelöscht wurde. Das gleiche gilt, wenn ich eine Ansicht zum Löschen eines Objekts gemacht habe; Es wird nur eine Auszeit sein. Dies geschieht bei allen meinen Objekten. Das einzige, was mir einfällt, dass ich zwischen meiner letzten Version meiner App und dieser Version gewechselt habe, ist, dass ich mehrere viele Felder und einen selbstreferentiellen Fremdschlüssel hinzugefügt habe.

Es nie aus oder nichts aus. Die Zeitüberschreitung tritt bei meinem Nginx-Server auf und ist auf 2 Minuten eingestellt, was offensichtlich lang genug sein sollte, um ein Objekt zu löschen, so dass ich nie einen Django-Fehlerbildschirm bekomme. Es hat bisher nur etwa 10 Objekte in der App, die sich auf diese App beziehen.

Ich kann immer noch Objekte und alles erstellen, es ist nur, dass ich keine Möglichkeit gefunden habe, alle Objekte im Zusammenhang mit meiner App zu löschen.

Irgendwelche Gedanken? Ich weiß, dass ich einfach die db atomisieren und eine neue erstellen kann, und das Problem wäre theoretisch gelöst, aber ich möchte versuchen, herauszufinden, was passiert ist, damit ich dieses Problem in der Zukunft vermeiden kann.

Antwort

4

Möglicherweise gibt es noch eine Datenbanktransaktion mit exklusiver Sperre für ein Objekt. Versuchen Sie den Database Deamon neu zu starten.

+2

Ich stimme zu, dass es wahrscheinlich eine andere Verbindung ist, die diese Objekte noch benutzt. Ein Neustart ist jedoch nicht notwendig. Stellen Sie einfach sicher, dass alle Verbindungen geschlossen sind (z. B. von Ihrer Anwendung). Sie können die Ansicht pg_stat_activity abfragen, um herauszufinden, wie viele Verbindungen Sie haben. –

+0

Vielen Dank für Ihre Eingabe. Du hast Recht Neustart ist nicht notwendig. – maersu

+0

Ich hatte 9 offene Verbindungen zu meiner Datenbank. Ich habe versucht, eine Methode zu finden, um die offenen Verbindungen zu töten, aber konnte keinen Weg finden, also habe ich gerade postgres neugestartet. Hast du eine Ahnung, was diese Verbindungen verursacht hätte, um offen zu bleiben und zu verhindern, dass ich Modelle lösche? Ich würde gerne von dieser Erfahrung lernen, um zu verhindern, dass es wieder passiert. – DantheMan

Verwandte Themen