Відповіді:
Використовуйте, --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 --