PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Stellen Sie die Django-Anwendung ohne Dienstunterbrechung / ohne Ausfallzeit bereit

Falls Sie keine Schemamigrationen haben, gebe ich Ihnen ein praktisches Szenario:

Behalten Sie zwei Versionen von Django-Prozessen ( A und B ), die Sie beispielsweise mit einem Supervisor steuern. Halten Sie einen nginx-Prozess vor Ihren Django-Prozessen, der alle Anfragen an A weiterleitet. Sie laden also Version B auf den Server hoch, starten den Django-Prozess B mit Supervisor, ändern dann die conf-Datei Ihrer nginx so, dass sie auf B zeigt, und laden dann Ihre nginx-Prozess..

Bei Schemamigrationen wird es kompliziert. Ihre Optionen umfassen:

  • Sie könnten eine NoSQL-Lösung wie mongoDB verwenden (in diesem Fall können Sie eine einzelne DB-Instanz behalten).
  • Finden Sie heraus, wie Sie alle Schreibanfragen während des Hochladens manuell aufzeichnen, um sie später in Ihre neue Datenbank zu verschieben.