[PYTHON] Führen Sie einen Anwendungstest für Migrationsdateien mit Django + PostgreSQL (Evil Edition) durch.

Operations Memorandum in Django + PostgreSQL für mich Es ist nicht der richtige Weg, und es sollte auf einfache Weise geschehen. Beschrieben, dass es auch eine solche Methode gibt.

Die Richtigkeit des Verfahrens kann nicht garantiert werden.

Zweck

Wenn Sie das Modell in Django ändern In der von allen gemeinsam genutzten Verifizierungsumgebung Entsprechen Sie nach dem Anwenden der Migrationsdatei.

Es ist jedoch ein entsprechendes Verfahren für diejenigen, die Schwierigkeiten haben, zusätzlichen Code zu schreiben.

Annahme

Verfahrensübersicht

Verfahren

Bereiten Sie die Sicherungszieldatenbank für die Zieldatenbank vor

Vorbereitung der Speicherzieldatenbank


$ createdb targetdb_evate;

Trennen Sie die vorhandene Sitzung

Trennen Sie die mit PostgreSQL verbundene Sitzung. (Natürlich nach Bestätigung, dass keine Operationen durchgeführt wurden)

Überprüfen Sie vorhandene Sitzungen


$ psql
postgres=# select pid, datname from pg_stat_activity;

Geben Sie die mit dem obigen Befehl bestätigte PID an und lösen Sie die folgende SQL aus.

Sitzung trennen


postgres=# select pg_terminate_backend($pid) from pg_stat_activity;

Sichern Sie die Zieldatenbank

Von der Zieldatenbank (targetdb) zur gespeicherten Zieldatenbank (targetdb_evade) Sichern Sie Ihre Daten.

Datenbanksicherung


$ pg_dump -Ft targetdb | pg_restore -d targetdb_evade

Wenn noch Sitzungen vorhanden sind, schlägt dies hier fehl.

Migration anwenden

Wenden Sie die Django-Migration auf geeignete Weise an.

Migration anwenden


$ python manage.py migrate

Überprüfen Sie nach der Anwendung den Vorgang und führen Sie verschiedene Tests durch.

Rückgängig machen vom Backup

Kehren Sie vor der Migration aus der Speicherzieldatenbank in den Status zurück ** Vorhandene Sitzung trennen ** Schritte wiederholen, um sie zu wiederholen Trennen Sie alle Sitzungen.

Löschen Sie die auf die Migration angewendete Datenbank (targetdb) und Benennen Sie die gespeicherte Datenbank (targetdb_evade) um und Sie sind fertig.

Rückkehr vom Backup


$ psql
postgres=# drop database targetdb;
postgres=# alter database targetdb_evade rename to targetdb;

Recommended Posts

Führen Sie einen Anwendungstest für Migrationsdateien mit Django + PostgreSQL (Evil Edition) durch.
Der einfachste Weg, um mit Django zu beginnen
Die Geschichte der Anzeige von Mediendateien in Django
Die Geschichte der Erstellung einer Webanwendung, die umfangreiche Lesungen mit Django aufzeichnet
Laden Sie Dateien mit Django hoch
Extrahieren Sie die Tabelle der Bilddateien mit OneDrive & Python
Bis zum Start des Django-Tutorials mit Pycharm unter Windows
Testen Sie die Version des Argparse-Moduls
Testgetriebene Entwicklung mit Django Teil 4
Testgetriebene Entwicklung mit Django Teil 6
Messen Sie die Abdeckung der Django-Anwendung mit Coverage.py
Behandeln Sie CSV-Dateien mit Django (Django-Import-Export)
Verwalten Sie Django-Konfigurationsdateien mit Python-Decouple
Stellen Sie die Django-Anwendung mit Docker bereit
Testgetriebene Entwicklung mit Django Teil 2
Testen Sie die Eignung der Verteilung
Erstellen Sie eine Webanwendung mit Django
Testgetriebene Entwicklung mit Django Teil 1
Die Geschichte des erneuten Bereitstellens des Anwendungsservers
Testgetriebene Entwicklung mit Django Teil 5
Plotten Anwenden von Diagrammen mit Schiebereglern
Einstellung, um den Inhalt der Bibliothek mit pytest einzugeben und einen Debug-Test durchzuführen
Domainregistrierung und HTTPS-Konvertierung der mit CodeStar mit Route53 erstellten Django-App
Die Geschichte der Verwendung von mysqlclient, da PyMySQL nicht mit Django 2.2 verwendet werden kann