2017-07-01 3 views
-1

Ich habe versucht, meine Django-basierte Fragebogenanwendung auf AWS zu implementieren. Ich bin komplett neu in AWS und Web-Apps.
Wenn ich meine app gebaut es lief auf local fein und ich dies in meinem settings.py:Verwenden von Datenbanken mit elastischen Bohnen

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.sqlite3', 
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 

ich haben es geschafft, meine Anwendung mit elastischen Bohnenstengel successfuly bereitstellen und es funktionierte gut. Aber dann musste ich einige Änderungen in meinem Code vornehmen und ich habe "eb deploy" von meinem lokalen Verzeichnis verwendet, um die neue Version zu implementieren.
Dies führte zum Verlust aller Daten (die Antworten füllten bis jetzt). Ich erkannte, dass ich etwas an meiner Datenbank tun musste. Da ich völlig neu in all dem bin, würde einige Hilfe und Anleitung geschätzt werden.

+2

anstelle von sqlite (die auf einer Maschine lokalisiert ist), eine remote-mysql/postgresql/maria usw. Server einrichten – hjpotter92

+0

Danke für den Kommentar. Könnten Sie mir Quellen zur Verfügung stellen, die mir dabei helfen würden? –

Antwort

2

Mann, ich hatte diese Erfahrung in der Vergangenheit und habe keine guten Nachrichten für Sie. Das Schlimmste war, dass mir niemand sagte, was ich dir jetzt sagen würde. Was bedeutet, dass ich viel Zeit damit verbracht habe zu verstehen, was passiert ...

Denken Sie daran: Wenn Sie eine Elastic Beanstalk-Umgebung erstellen, bietet AWS alles für Sie: Instanzen, eb-Volumes, Load Balancer und alle. Wenn Sie eine Revision mithilfe von Konsole oder AWS-CLI hochladen, erstellt AWS Ihre Instanz basierend auf einem Bild aus elastischen Bohnen neu. Dies bedeutet, dass alle auf der Festplatte Ihrer Umgebung gespeicherten Daten gelöscht werden. Die neue Umgebung wird mit einer "leeren" Festplatte initialisiert (und die Plattformdateien sind da). Das bedeutet: Ihre Datenbank wird im Himmel oder in der Hölle leben, basierend auf dem, was Sie darauf gespeichert haben.

Wenn Sie Ihre Daten nach der Beendigung/Neuinitialisierung der Instanz aufbewahren müssen, müssen Sie einen zusätzlichen elastischen Blockspeicher oder ein elastisches Dateisystem konfigurieren. Damit dies jedoch funktioniert, müssen Sie Ihre Initialisierungsskripts ändern, um den Blockspeicher oder das Dateisystem nach der Initialisierung anzuhängen. Denken Sie daran, dass Elastic Beanstalk beim Beenden/Reinilizieren von Instanzen ein wenig brachial ist. Wenn Ihre Datenbank einige Prozeduren benötigt, um korrekt herunterzufahren, wird eb sie einfach weinen lassen (Kommentar basierend auf persönlicher Erfahrung).

In diesem Fall empfiehlt es sich, die Datenbank in einer anderen Instanz zu installieren und sie unabhängig von Ihrer Anwendungsumgebung laufen zu lassen. In dieser Situation können Sie die Datenbank vergessen, wenn Sie eine neue Revision bereitstellen.

Überprüfen Sie here für weitere Informationen.

+0

lol danke für den head up man! Ich denke, ich werde es auf Amazon RDS erarbeiten und sehen, wo das Leben mich nimmt ~ _ ~ –

Verwandte Themen