Ich möchte einen Zeitplan erstellen, bei dem meine Staging-Datenbank immer eine Kopie meiner Produktionsdatenbank ist und die Kopie einmal am Tag oder einmal pro Stunde erstellt wird.
Ich weiß, dass es eine einfache Möglichkeit gibt, eine einmalige Kopie mit heroku pg
durchzuführen:
Aber das ist nur eine einmalige Sache.
Ich weiß auch, dass es einfach ist, zeitgesteuerte Befehle mit dem Heroku-Scheduler auszuführen, die in einmaligen Prüfständen ausgeführt werden. Aber auf den Dynos ist der Heroku Toolbelt nicht installiert, daher ist heroku pg:copy
nicht verfügbar.
Ich habe versucht, pg_dump | pg_restore
zu verwenden, aber ich stoße auf eines von zwei Problemen:
Ohne das Schema einzuschränken, scheitert es, weil ich nicht die richtigen Berechtigungen habe, denke ich:
%Vor% Bei der Einschränkung von pg_dump
auf nur --schema=public
tritt ein Fehler auf, da einige Erweiterungen vom öffentlichen Schema abhängen und nicht gelöscht werden.
Was ist der beste Weg dies zu tun?
Es gibt keinen Grund, warum Sie die CLI nicht als Vorstufe für jede Kopie der Produktionsdatenbank herunterladen und auf dem Prüfstand installieren können.
Sie benötigen lediglich ein Shell-Skript, das vom Scheduler aufgerufen wird, und das Shell-Skript installiert die CLI und verwendet Umgebungsvariablen, um die erforderlichen Anmeldeinformationen zu speichern.
Einfacher zweistufiger Prozess ...
Tatsächlich kann es eine eigenständige App ohne Web- oder Worker-Prozesse sein, die dies ausführt.
Wir verwenden eine ähnliche Methode, um unsere eigenen Backups auszuführen und sie unabhängig von Herokus eigenem Backup in einen AWS S3-Bucket hochzuladen. Daher installieren wir sowohl die Heroku als auch die AWS-CLIs.
Haben Sie überlegt, einen Datenbank-Follower (auch Master / Slave-Konfiguration genannt) zu erstellen? Ссылка
Dies würde Ihre Follower-Datenbank kontinuierlich mit Daten aus der Produktion aktualisieren. Beachten Sie, dass, wenn Sie Daten direkt in der Follower-Datenbank geändert haben, dies nicht unbedingt überschrieben werden würde, also nicht sicher, ob dies eine mögliche Lösung für das ist, was Sie brauchen.
Tags und Links database postgresql heroku