it-swarm.com.de

Importieren Sie den SQL-Speicherauszug in die PostgreSQL-Datenbank

Wir wechseln die Hosts und der alte hat einen SQL-Dump der PostgreSQL-Datenbank unserer Site bereitgestellt.

Jetzt versuche ich, dies auf einem lokalen WAMP-Server einzurichten, um dies zu testen.

Das einzige Problem ist, dass ich keine Ahnung habe, wie ich diese Datenbank in das von mir eingerichtete PostgreSQL 9 importieren soll.

Ich habe pgAdmin III ausprobiert, aber ich kann anscheinend keine 'Import'-Funktion finden. Also habe ich einfach den SQL-Editor geöffnet und den Inhalt des Dumps dort eingefügt und ausgeführt. Er erstellt die Tabellen, gibt mir aber weiterhin Fehler, wenn er versucht, die Daten darin abzulegen.

ERROR:  syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...

The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t   2011-05-24 16:45:01.768633  2011-05-24 16:45:01.768633  view    nl ...  

Ich habe auch versucht, dies mit dem Befehl Eingabeaufforderung zu tun, aber ich kann den Befehl, den ich benötige, nicht finden.

Wenn ich mache

psql mydatabase < C:/database/db-backup.sql;

Ich bekomme den Fehler

ERROR:  syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
        ^

Wie importiere ich die Datenbank am besten?

389
dazz
psql databasename < data_base_dump

Das ist der Befehl, den Sie suchen.

Achtung: databasename muss vor dem Import erstellt werden. Sehen Sie sich die PostgreSQL-Dokumentation in Kapitel 23 an. Sichern und Wiederherstellen .

635
Jacob

Hier ist der Befehl, den Sie suchen.

psql -h hostname -d databasename -U username -f file.sql
317
Gabriel Ramirez

Ich glaube, dass Sie in psql ausführen möchten:

\i C:/database/db-backup.sql
100
Arran Ubels

Das hat bei mir funktioniert:

Sudo -u postgres psql db_name < 'file_path'
46
ivanacorovic

Ich bin mir nicht sicher, ob dies für die Situation im OP funktioniert, aber ich fand, dass das Ausführen des folgenden Befehls in der interaktiven Konsole die flexibelste Lösung für mich war:

\i 'path/to/file.sql'

Stellen Sie einfach sicher, dass Sie bereits mit der richtigen Datenbank verbunden sind. Dieser Befehl führt alle SQL-Befehle in der angegebenen Datei aus.

38
rockusbacchus

Funktioniert ziemlich gut, in der Kommandozeile sind alle Argumente erforderlich, -W steht für Passwort

psql -h localhost -U user -W -d database_name -f path/to/file.sql
35
Feuda

Nur zum Spaß, wenn Ihr Dump komprimiert ist, können Sie so etwas tun

gunzip -c filename.gz | psql dbname

Wie Jacob erwähnte, beschreiben die PostgreSQL-Dokumente das alles recht gut.

21
alan

Ich benutze:

cat /home/path/to/dump/file | psql -h localhost -U <user_name> -d <db_name>

Hoffe das wird jemandem helfen.

5
Vajira Lasantha

Sie können es in pgadmin3 tun. Löschen Sie die Schemas, die Ihr Dump enthält. Klicken Sie dann mit der rechten Maustaste auf die Datenbank und wählen Sie Wiederherstellen. Dann können Sie nach der Dump-Datei suchen.

3

Mir ist aufgefallen, dass viele Beispiele für localhost zu kompliziert sind, bei denen in vielen Fällen nur postgres-Benutzer ohne Passwort existieren:

psql -d db_name -f dump.sql
2