Antworten:
Verwenden Sie --table
diese Option, um anzugeben, pg_dump
welche Tabelle gesichert werden muss:
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename dbname
psql -U username -d database -1 -f your_dump.sql
--ignore-version
. Prashant Kumars Antwort, die einfacher ist, hat für mich funktioniert.
Wenn Sie auf Ubuntu sind,
sudo su postgres
pg_dump -d <database_name> -t <table_name> > file.sql
Stellen Sie sicher , dass Sie den Befehl ausführen , wo der postgres
Benutzer Schreibrechte besitzen (Beispiel: /tmp
)
Bearbeiten
Wenn Sie die SQL-Datei auf einem anderen Computer sichern möchten, müssen Sie möglicherweise die Eigentümerinformationen überspringen, die in der SQL-Datei gespeichert werden.
Sie können verwenden pg_dump --no-owner -d <database_name> -t <table_name> > file.sql
pg_dump -d <database_name> > file.sql
pg_dump -t <table_name> <database_name> > file.sql
pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table> backup.sql
Sie können die Sicherung einer einzelnen Tabelle durchführen, aber ich würde vorschlagen, die Sicherung der gesamten Datenbank durchzuführen und dann die gewünschte Tabelle wiederherzustellen. Es ist immer gut, eine Sicherung der gesamten Datenbank zu haben.
max(id)
in meiner Tabelle zu aktualisieren . Dies ist die Antwort, die funktioniert hat, und ich bin zuversichtlich, dass ich sie beim Betrachten des generierten SQL wiederherstellen könnte.
Wenn Sie eine grafische Benutzeroberfläche bevorzugen, können Sie pgAdmin III (Linux / Windows / OS X) verwenden. Klicken Sie einfach mit der rechten Maustaste auf die Tabelle Ihrer Wahl und dann auf "Backup". Es wird ein pg_dump
Befehl für Sie erstellt.
Als Ergänzung zu Frank Heikens Antwort sollten Sie das Flag angeben , wenn Sie INSERT
stattdessen Anweisungen verwenden möchtencopy from stdin
--inserts
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
Beachten Sie, dass ich die --ignore-version
Flagge weggelassen habe, weil sie veraltet ist.
pg_restore --host localhost --port 5432 --username postgres --dbname "anydb" --table public.tablename -Ft --verbose "/path/filename.backup"
aber es kam heraus:pg_restore: [tar archiver] corrupt tar header found in --