2012-12-04 17 views
10

Zrzucam moją bazę danych "moja_bazy danych" do pliku tekstowego "mydatabase.sql" za pośrednictwem wiersza poleceń.Howto pg_restore

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase" 

Thas 'going nice. Ale po wielu próbach nie mogę wykonać pg_restore tych plików z powrotem do bazy danych z danymi.
Ale jeśli mogę usunąć wszystkie tabele w tej bazie danych można zrobić go z:

psql -f "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase" "postgres" 

to wszystko odzyskać dane. Problem jest taki, że nie można uruchomić pgsl poprzez VBNET/shell więc wolałbym trzeba pg_restore.exe To moja próba:

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_restore.exe " -i -h localhost -p 5432 -U postgres -d "mydatabase" -v "C:\Users\User 1\Desktop\mydatabase.sql" 

... gdzie otrzymuję komunikat:

C : \ Users \ User 1> "C:/Program Files (x86) /PostgreSQL/9.1/bin/pg_restore.exe" -i -h localhost -p 5432 -U postgres -d "moja_bazy danych" -v "C: \ Users \ User 1 \ Desktop \ mydatabase.sql " nieprawidłowy plik binarny" C:/Program Files (x86) /PostgreSQL/9.1/bin/pg_restore.exe " pg_restore.exe: plik wejściowy [archiwum] nie wydaje się być ważny archiwum

Przed próbą przywrócenia mam pustą bazę danych "moja_bazy_danych" na serwerze (bez tabel). Proszę o pomoc w uzyskaniu pg_restore pracy z plikiem "mydatabase.sql", który jest zrzucany z pg_dump i który oczywiście zawiera poprawne dane, dzięki czemu mogę go używać za pomocą czystej linii poleceń lub VBNET/powłoki.

Odpowiedz

11

W pliku pg_dump określ flagę -F t. Dzięki temu pg_dump utworzy kopię zapasową w formacie tar, która jest odpowiednia do przywrócenia za pośrednictwem pg_restore.

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose -F t --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase" 
+0

Rozumiem. To dzieło :) Dziękuję bardzo! –