1

Temat: Przeniesienie baz danych z Postgres 8.3 na 9.1

Ostatnio edytowany przez Nissyre (2012-01-25 13:18:46)

2

Odp: Przeniesienie baz danych z Postgres 8.3 na 9.1

Może spróbuj zrobić eksport/import z użyciem formatu SQL (pg_dump plain i psql -f), w razie błędów Postgres powinien wypisać co się nie zgadza.

3

Odp: Przeniesienie baz danych z Postgres 8.3 na 9.1

Niestety po wytworzeniu archiwum z opcja plain Postgres 9.1 zachowuje się jakby nie rozpoznawał typu archiwum co wywołuje błąd.

4

Odp: Przeniesienie baz danych z Postgres 8.3 na 9.1

Nie bardzo rozumiem o jakim archiwum piszesz, plain SQL (pg_dump -Fp) powinien wyprodukować zwykły plik tekstowy, przy czym pg_restore o ile mnie wiadomo tego nie obsłuży, natomiast można użyć psql'a żeby bezpośrednio wczytać SQL'a.

5

Odp: Przeniesienie baz danych z Postgres 8.3 na 9.1

Ostatnio edytowany przez Nissyre (2012-01-25 13:13:43)

6

Odp: Przeniesienie baz danych z Postgres 8.3 na 9.1

Ostatnio edytowany przez gszpetkowski (2012-01-25 15:09:10)

7

Odp: Przeniesienie baz danych z Postgres 8.3 na 9.1

Już wiem na czym głównie polegał mój błąd. Sprawa tyczyła się ról i tego, której roli używałem przy odtwarzaniu archiwum. Wynikało to z faktu, iż właścicielem bazy danych, którą chciałem przepisać był inny użytkownik i tak jak przy tworzeniu dump'a nie było problemów tak przy odtwarzaniu trochę się zakręciłem. Utworzyłem role w Postgres'ie 9.1 jednak przy odtwarzaniu kiedy łączyłem się z inną bazą podawałem nie jej właściciela (jak powinienem w polu --username) tylko właściciela tworzonej bazy.

Strasznie dziękuję za pomoc, bo twoje uwagi naprowadziły mnie na poprawne rozwiązanie.

Co do dokumentacji to używałem głównie helpów, które wyświetlają się kiedy wpiszemy opcje --help przy poleceniach.

Edit:

Gdyby ktoś miał podobne problemy, to podaje rozwiązanie, które wydaje mi się poprawne:
- korzystając z pg_dump z wersji Postgres 9.1 (nie wiem czy ma to znaczenie, ale tego używałem), mając uruchomioną usługę Postgres 8.3, pozostałe jakie mam wyłączone wykonałem dumpa przy pomocy polecenia:

pg_dump --format=plain --file=plik.sql --host=localhost --port=5440 --username=uzytkownik --password --create baza

gdzie użytkownik to nazwa roli właściciela zrzucanej bazy danych, host i port oczywiście do Postgres 8.3

następnie wyłączyłem usługę Postgres 8.3, włączyłem 9.1 i wykonałem polecenie (również przy użyciu binarki z wersji 9.1)

psql --file=plik.sql --host=localhost --port=5432 --username=postgres --password postgres
gdzie postgres jest nazwą roli właściciela bazy postrgres (przepraszam, że tak samo się nazywa rola i baza, ale to ustawienia domyślne), host i port oczywiście na wersję Postgres 9.1

Ostatnio edytowany przez Nissyre (2012-01-25 16:06:03)