Temat: Przeniesienie baz danych z Postgres 8.3 na 9.1
Ostatnio edytowany przez Nissyre (2012-01-25 13:18:46)
PostgreSQL to najbardziej zaawansowany system relacyjnych baz danych Open Source.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Ostatnio edytowany przez Nissyre (2012-01-25 13:18:46)
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.
Niestety po wytworzeniu archiwum z opcja plain Postgres 9.1 zachowuje się jakby nie rozpoznawał typu archiwum co wywołuje błąd.
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.
Ostatnio edytowany przez Nissyre (2012-01-25 13:13:43)
Ostatnio edytowany przez gszpetkowski (2012-01-25 15:09:10)
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)
Posty [ 7 ]
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
[ Wygenerowano w 0.008 sekund, wykonano 10 zapytań ]