2009-11-25 19 views
25

Boş bir veritabanında, pg_dump'ın oluşturduğu SQL'i çalıştırarak bir PostgreSQL veritabanını geri yüklemeye çalışıyorum.PostgreSQL: veritabanı dökümünden geri yükleme - sözdizimi hatası

bu hatayı alıyorum:

ERROR: syntax error at or near "\" 
LINE 5211: \. 

hatları 5210 ve 5211 okuma:

psql'in:

COPY auth_group (id, name) FROM stdin; 
\. 

Ben bu komutu kullanın benim Linux sunucu üzerinde çalışıyor -U

dumpfile.sql < dbname ama Windows üzerinde, nasıl emin değilim aynı şeyi yapın, bu yüzden dumpfile'ın sql'sini pgAdminIII sorgu yardımcı programından çalıştırmaya çalışıyorum.

Windows'ta bir dökümden bir db içe aktarmanın önerilen yolu nedir? Ya da: bu sözdizimi sorunu nasıl çözülebilir?

Herhangi bir yardım çok takdir edilmektedir!

Martin

cevap

68

bunu boruya zorunda kalmamak psql üzerine -f filename argüman, dosyada okuyacaktır. Psql'in pencerelerde PostgreSQL'in bin dizine dahil edilmelidir. böylece gibi:

psql -d dbname -U username -f dumpfile.sql 

Değişikliklerin bir yolda değilse psql'in yürütülebilir tam yol dahil etmek zorunda ve olası bir ekleme ".exe" psql için, bu yüzden 'psql.exe' dir olabilir. Ayrıca

sürüm numaraları aşağı gidiyor olmadığından emin olun, ben (örneğin bir 8.4 veritabanı ihracat ve 8.1 veritabanına yük kalkmayın) önce sözdizimi sorunları çalıştırmak. Öyleyse, döküm dosyasını el ile düzenlemeniz gerekebilir.

+1

dumpfile.sql psql'in -d Dbname -U kullanıcı ile deneyin. OS X'in terminalinden gayet iyi çalıştı. –

27

sözdizimi hataları her türlü atma Navicat ile bir dökümü almak için çalışırken, bu benim için çalıştı -f

+0

teşekkürler kai, en azından oyu vereceğim ..! – Hoff