Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [postgres] konwersja bazy
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
Cezar708
Witam,

chcę przekonwertować bazę danych z kodowania Latin2 na UNICODE.

Robił to ktoś z Was? Jeśli tak, to podzielisz się doświadczeniem?

Znalazłem temat na forum, który mniej więcej jest w stanie powiedzieć mi jak zrobić to "na około", czy naprawdę nie ma narzędzi, które przekonwertują bazę z Latin2 na UNICODE?

Proszę o pomoc
Pozdrawiam Cezar708
Sedziwoj
Ja jedyne co znalazłem to backup -> konwersja -> zapis do nowej.
Pewnie tą samą metodę znalazłeś. I coś mi się zdaje, że nic lepszego nie będzie.
Cezar708
no właśnie tę tylko znałem... dzięki za zainteresowanie.

Będę teraz dłubał winksmiley.jpg

Pozdrawiam
AsYlum
Temat trochę odgrzebany, ale dość często się pojawia, dlatego dorzucę swoje 3 grosze. Od wersji Postgres 8.1, pg_dump ma parametr -E, który odpowiada za encoding. Dzięki temu nie trzeba już bawić się w edycję plików i zamianę znaków.

Operacja zamiany Latin-2 -> UTF8 mogłaby wyglądać następująco:
1. tworzymy backup bazy (podając kodowanie do jakiego ma konwertować pg_dump)
- pg_dump -i -h localhost -p 5432 -U postgres -E UTF8 -F c -Z 9 -b -v -f "D:\test_db.backup" test_db
2. tworzymy pustą bazę z nowym kodowaniem tj. UTF8
3. wczytujemy backup smile.gif

Trzeba zwrócić uwagę, aby nowo-utworzona baza miała poprawne kodowanie, tzn. takie jak ma backup. Jeśli kodowania będą różne to PgSQL złoży się pięknym błędem. Przynajmniej takie miałem doświadczenia z którymś wydaniem 8.3.x. Niestety nie pamiętam dokładnego numeru wersji.

Więcej o pg_dump pod tymi linkami:
- v8.1 http://www.postgresql.org/docs/8.1/interac...app-pgdump.html
- v8.2 http://www.postgresql.org/docs/8.2/interac...app-pgdump.html
- v8.3 http://www.postgresql.org/docs/8.3/interac...app-pgdump.html

Pełna lista konwersji jakie obsługuje PgSQL znajduje się w tabeli pg_conversion. Dokumentacja wspomina również o tworzeniu swoich konwersji kodowania, jednak nie sprawdzałem jak to działa w praktyce. Domyślnie Postgres obsługuje większość konwersji jakie możemy sobie wymyślić.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.