Gibt es eine Möglichkeit, mit postgres eine Sicherung einer einzelnen Tabelle in einer Datenbank zu erstellen? Und wie? Funktioniert dies auch mit dem Befehl pg_dump?
postgresql
backup
pg-dump
Elitmiar
quelle
quelle
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 --
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
quelle
pg_dump -d <database_name> > file.sql
pg_dump -t <table_name> <database_name> > file.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.
9 Möglichkeiten, pg_dump zu verwenden
quelle
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.quelle
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.quelle