Odpowiedzi:
Służy --table
do określania pg_dump
tabeli, którą ma wykonać kopię zapasową:
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
. Odpowiedź Prashanta Kumara, która jest prostsza, zadziałała dla mnie.
Jeśli korzystasz z Ubuntu,
sudo su postgres
pg_dump -d <database_name> -t <table_name> > file.sql
Upewnij się, że jesteś wykonaniem polecenia, gdzie postgres
użytkownik ma uprawnienia do zapisu (np /tmp
)
Edytować
Jeśli chcesz zrzucić plik .sql na inny komputer, możesz rozważyć pominięcie informacji o właścicielu zapisywanych w pliku .sql.
Możesz użyć 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 moja_tabela> backup.sql
Możesz wykonać kopię zapasową pojedynczej tabeli, ale sugerowałbym wykonanie kopii zapasowej całej bazy danych, a następnie przywrócenie dowolnej tabeli, której potrzebujesz. Zawsze dobrze jest mieć kopię zapasową całej bazy danych.
max(id)
na moim stole. to jest odpowiedź, która zadziałała i jestem przekonany, patrząc na wygenerowany sql, że mogłem go przywrócić.
Jeśli wolisz graficzny interfejs użytkownika, możesz użyć pgAdmin III (Linux / Windows / OS X). Wystarczy kliknąć prawym przyciskiem myszy wybrany stół, a następnie wybrać opcję „kopia zapasowa”. Stworzy pg_dump
dla ciebie polecenie.
Jako dodatek do odpowiedzi Franka Heikena, jeśli chcesz użyć INSERT
instrukcji zamiast copy from stdin
, powinieneś określić --inserts
flagę
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
Zauważ, że pominąłem --ignore-version
flagę, ponieważ jest przestarzała.
pg_restore --host localhost --port 5432 --username postgres --dbname "anydb" --table public.tablename -Ft --verbose "/path/filename.backup"
ale wyszło:pg_restore: [tar archiver] corrupt tar header found in --