2016-11-25 3 views
0

Während der Entwicklung muss ich mein System bereinigen, indem ich eine Datenbanksicherung wiederherstelle und dann SQL dagegen ausführe. Gibt es eine Möglichkeit, dies zu tun:Wie stelle ich eine Postgres-Datenbank innerhalb einer SQL-Abfrage wieder her?

restore schema dbo 'c:/data/mydatabase.backup'; 
update dbo."MyTable" set "ColumnA" = 1; 

Im Gegensatz zu anderen Fragen, dann ist dies nicht für über die Kommandozeile zu tun, aber in einer Abfrage statt.

Postgres v9.5 mit pgAdminIII.

+1

Nein, es gibt keine solche SQL-Anweisung. Der einzige Weg ist, es über die Befehlszeile (entweder mit 'psql' oder' pg_restore') zu tun. –

+0

Vielen Dank, möchten Sie das beantworten? Also kann ich die Frage für jeden anderen, der hier landet, abschließen. –

Antwort

1

Es gibt keine Unterstützung für die Wiederherstellung eines Speicherauszugs aus einer SQL-Anweisung in Postgres.


Einige mögliche (hässlich) Abhilfen:

Wenn Ihr Dump ein SQL-Skript ist, dass Sie theoretisch das Skript laufen konnte von wo auch immer Sie diese (hypothetischen) laufen würde Aussage wiederherzustellen - aber das würde erfordern das Skript Parsen . Und Sie müssten den Dump mit der Option --inserts generieren, da das Skript sonst psql spezifische Anweisungen enthält.

Eine andere Problemumgehung könnte darin bestehen, eine gespeicherte Funktion in einer nicht vertrauenswürdigen Sprache zu erstellen, die Betriebssystembefehle ausführen kann. Die tatsächliche Wiederherstellung würde weiterhin vom Befehlszeilendienstprogramm ausgeführt, aber Sie könnten initiieren das von SQL aus.

+0

Danke für die hässlichen Workarounds. Ich werde stattdessen in Powershell gehen! –

Verwandte Themen