Yanıtlar:
Hangi tablonun yedekleneceğini --table
sö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 postgres
pg_dump -d <database_name> -t <table_name> > file.sql
Eğer komutu yürütme emin olun postgres
kullanı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_dump
Sizin için bir komut yaratacaktır .
Frank Heiken'in cevabına ek olarak, INSERT
bunun yerine ifadeleri kullanmak copy from stdin
istiyorsanız, --inserts
bayrağı belirtmelisiniz
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
--ignore-version
Bayrağı 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 --