1

Meine Datenbank auf Amazon hat derzeit nur wenige Daten (Ich mache eine Web-App, aber es ist noch in der Entwicklung) und ich suche, es zu löschen, Änderungen am Schema vorzunehmen und es wieder zu speichern. Die letzten Male habe ich das getan, ich habe meine Elasticbeanstalk App komplett neu erstellt, aber es scheint als gäbe es einen besseren Weg. Auf meinem lokalen Rechner, nehme ich die folgenden Schritte:Wie man Tisch fallen lässt und in Amazon RDS mit Elasticbeanstalk neu erstellt?

  1. "dropdb database" und dann "createdb DATABASE"
  2. Python manage.py makemigrations
  3. Python migrieren manage.py

Gibt es so etwas, das ich bei Amazon machen kann, um meine Datenbank zu löschen und wieder online zu stellen, ohne die gesamte Anwendung zu löschen? Als ich vor einiger Zeit versuchte, die RDS-Instanz zu löschen und eine neue zu erstellen, hatte ich Probleme mit elasticbeanstalk.

Antwort

3

Der einfachste Weg, dies zu erreichen, ist SSH zu einer Ihrer EC2-Instanzen, die Zugriff auf die RDS DB hat, und verbinden Sie sich von dort mit der DB. Stellen Sie sicher, dass Ihre Python-Skripts Ihre App-Konfiguration lesen können, um auf den konfigurierten DB zuzugreifen, oder fügen Sie Argumente für den DB-Hostnamen hinzu. Um die DB zu löschen und zu erstellen, müssen Sie nur die notwendigen Argumente hinzufügen, um eine Verbindung zur Datenbank herzustellen. Zum Beispiel:

$ createdb -h <RDS endpoint> -U <user> -W ebdb

können Sie auch einen RDS-Snapshot erstellen, wenn die DB leer ist, und verwenden Sie die RDS-Instanz Aktionen in Time Restore oder Migrate Neuesten Snapshot-zu-Punkt.

+0

danke für den Kommentar, hat es geholfen, mich auf den richtigen Weg zu bringen. Ich bin in der Lage, die Datenbank zu löschen und zu erstellen, aber jetzt habe ich Probleme mit manage.py. Wenn ich versuche, manage.py in meiner EC2-Instanz auszuführen, kann es meine Umgebungsvariablen nicht finden - irgendwelche Ideen, warum dies der Fall sein könnte? Ich überprüfte/opt/python/current/env und kann die Variablen sehen, aber wenn ich in die Python-Shell gehe und "os.environ" starte, sind sie nicht aufgelistet. – TH22

+0

Die Umgebungsvariablen werden für Ihre Anwendung geladen, aber nicht, wenn Sie SSH in Ihre Instanz einfügen. Versuchen Sie, 'source/opt/python/run/vend/bin/activate && source/opt/python/current/env' auszuführen, oder zumindest das letztere, um Ihre Umgebungsvariablen zu laden. – quezacoatl

Verwandte Themen