Gibt es eine Möglichkeit, mit postgres eine Sicherung einer einzelnen Tabelle in einer Datenbank zu erstellen? Und wie? Funktioniert das auch mit dem Befehl pg_dump?
Verwenden --table
erzählen pg_dump
welche Tabelle muss gesichert werden:
pg_dump --Host localhost --port 5432 --username postgres --format plain --ignore-version --verbose --file "<abstract_file_path>" --table public.tablename dbname
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, bei dem der Benutzer postgres
über Schreibrechte verfügt (Beispiel: /tmp
).
Bearbeiten
Wenn Sie die .sql-Datei auf einem anderen Computer speichern möchten, müssen Sie möglicherweise die Eigentümerinformationen überspringen, die in der .sql-Datei gespeichert werden.
Sie können pg_dump --no-owner -d <database_name> -t <table_name> > file.sql
Verwenden.
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 jeweils benötigte Tabelle wiederherzustellen. Es ist immer gut, eine Sicherung der gesamten Datenbank zu haben.
Als Ergänzung zu Frank Heikens Antwort sollten Sie das Flag copy from stdin
Angeben, wenn Sie INSERT
-Anweisungen anstelle von --inserts
Verwenden möchten
pg_dump --Host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
Beachten Sie, dass ich das Flag --ignore-version
Weggelassen habe, da es veraltet ist.