Есть ли способ создать резервную копию одной таблицы в базе данных, используя postgres? И как? Это также работает с командой pg_dump?
postgresql
backup
pg-dump
Elitmiar
источник
источник
pg_restore --host localhost --port 5432 --username postgres --dbname "anydb" --table public.tablename -Ft --verbose "/path/filename.backup"
но он вышел:pg_restore: [tar archiver] corrupt tar header found in --
psql -U username -d database -1 -f your_dump.sql
--ignore-version
. Ответ Прашанта Кумара, который проще, сработал для меня.Если вы находитесь на Ubuntu,
sudo su postgres
pg_dump -d <database_name> -t <table_name> > file.sql
Убедитесь , что вы выполняете команду , где
postgres
пользователь имеет право на запись (Пример:/tmp
)редактировать
Если вы хотите сбросить файл .sql на другом компьютере, вам может потребоваться пропустить информацию о владельце, сохраненную в файле .sql.
Ты можешь использовать
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
Вы можете создать резервную копию одной таблицы, но я бы предложил создать резервную копию всей базы данных, а затем восстановить любую нужную таблицу. Всегда хорошо иметь резервную копию всей базы данных.
9 способов использовать pg_dump
источник
max(id)
на моей таблице. Это ответ, который работал, и я уверен, глядя на сгенерированный SQL, что я мог бы восстановить его.Если вы предпочитаете графический интерфейс пользователя, вы можете использовать pgAdmin III (Linux / Windows / OS X). Просто щелкните правой кнопкой мыши на таблице по вашему выбору, а затем «резервное копирование». Это создаст
pg_dump
команду для вас.источник
В дополнение к ответу Фрэнка Хайкена, если вы хотите использовать
INSERT
операторы вместоcopy from stdin
, то вы должны указать--inserts
флагpg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
Обратите внимание, что я пропустил
--ignore-version
флаг, потому что он устарел.источник