Ich versuche, meine Produktionsdatenbank auf Heroku auf meinen Staging-Server zu kopieren.
Mein Staging-Server war meinem Produktionsserver mit einer Migration voraus, die eine zusätzliche Tabelle erstellt. Ich möchte jetzt die Migration trockenlegen, um diese Tabelle in der Produktionsdatenbank hinzuzufügen, und möchte daher die Datenbank meiner Staging-Datenbank wiederherstellen, um dies zu tun.
Das Problem ist, dass jedes Mal, wenn ich die Staging-Datenbank zu der Produktion ein restore
der Tabelle bleibt. Ich habe erwartet, dass die Datenbank zerstört und neu bevölkert wird, aber sie scheint nur neu zu bevölkern.
Jedes Mal, wenn ich das tue, finde ich, dass die "neuere" Tabelle noch übrig ist.
Stellt pgbackups:restore
tatsächlich die Tabellenstruktur oder einfach Daten wieder her - was geht hier vor?
Eine Wiederherstellung ist eine einfache Postgres-Wiederherstellung, also im Wesentlichen eine gescriptete Version Ihrer Daten.
Um dies zu tun, müssen Sie zunächst Ihre Datenbank nuken und dann aus dem Datenbankskript neu erstellen:
%Vor%Wie neil sagte, verschiebt pgbackups: restore nur die Daten und ändert nicht die tatsächliche db-Struktur.
für die vollständige Wiederherstellung der Datenbank (ändern Sie App-Production, App-Staging und Migrationsnummer auf Ihre App):
Erhalte zuerst die aktuelle Migration von deiner Produktion.
%Vor%Zurücksetzen Staging-Datenbank (natürlich, sichern Sie es bei Bedarf)
%Vor%Führen Sie die Migrationen bis zur Migrationsnummer aus, um sie an die Produktions-DB-Struktur anzupassen
%Vor%erfassen Sie die Produktions-App
%Vor%push die Daten an die Staging-App
%Vor%BEARBEITEN - falls Sie den Heroku-Werkzeuggürtel verwenden, das Syntaxmuster hat sich von
geändertpgbackups:action_name
zupg:backups action_name
Die Staging-Datenbank sollte jetzt mit den Produktionsdaten und der Struktur übereinstimmen
%Vor%hoffe das hilft.
Tags und Links ruby-on-rails heroku