Yanıtlar:
Hangi tablonun yedekleneceğini --tablesöylemek için kullanın 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. Prashant Kumar'ın daha basit olan cevabı benim için çalıştı.
Ubuntu'daysanız,
sudo su postgrespg_dump -d <database_name> -t <table_name> > file.sqlEğer komutu yürütme emin olun postgreskullanıcı yazma izinlerine sahip (Örneğin: /tmp)
Düzenle
.Sql dosyasını başka bir bilgisayara dökmek istiyorsanız, sahip olan bilgileri .sql dosyasına atlamayı düşünmeniz gerekebilir.
Kullanabilirsiniz 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
Tek bir tablonun yedeğini alabilirsiniz, ancak tüm veritabanının yedeğini almanızı ve ardından hangi tabloya ihtiyacınız olduğunu geri yüklemenizi öneririm. Tüm veritabanının yedeğini almak her zaman iyidir.
max(id)arayabilirdim. Bu işe yarayan cevaptır ve üretilen sql'a baktığımda geri yükleyebileceğime inanıyorum.
Bir grafik kullanıcı arabirimi tercih ediyorsanız pgAdmin III'ü (Linux / Windows / OS X) kullanabilirsiniz. İstediğiniz tabloya sağ tıklayın, ardından "yedekleyin". pg_dumpSizin için bir komut yaratacaktır .
Frank Heiken'in cevabına ek olarak, INSERTbunun yerine ifadeleri kullanmak copy from stdinistiyorsanız, --insertsbayrağı belirtmelisiniz
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
--ignore-versionBayrağı terk ettiğime dikkat edin , çünkü kullanımdan kaldırılmıştır.
pg_restore --host localhost --port 5432 --username postgres --dbname "anydb" --table public.tablename -Ft --verbose "/path/filename.backup"ama çıktı:pg_restore: [tar archiver] corrupt tar header found in --