Ответы:
Используйте, --table
чтобы указать, pg_dump
какую таблицу необходимо создать для резервного копирования:
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
. Ответ Прашанта Кумара, который проще, сработал для меня.
Если вы находитесь на 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
pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table> backup.sql
Вы можете создать резервную копию одной таблицы, но я бы предложил создать резервную копию всей базы данных, а затем восстановить любую нужную таблицу. Всегда хорошо иметь резервную копию всей базы данных.
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
флаг, потому что он устарел.
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 --