RkBlog

Hardware, programming and astronomy tutorials and reviews.

Zmiana kodowania szablonów w PostgreSQL z SQL_ASCII na UTF-8

W niektórych dystrybucjach Linuksa po instalacji serwera PostgreSQL może okazać się że serwer używa jako domyślnego kodowania SQL_ASCII. Próba stworzenia np. PostGISowego szablonu, czy bazy z kodowaniem UTF-8 skończy się wtedy niepowodzeniem:

createdb: database creation failed: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)
Dokumentacja Django linkuje jedno rozwiązanie polegające na usunięciu całego klastra i stworzeniu go na nowo z kodowaniem UTF-8. Jeżeli mamy już jakieś bazy danych to trzeba będzie je zrzucić do plików i później przywrócić. Jest jednak alternatywne rozwiązanie polegające na usunięciu szablonu "template1" i odtworzeniu go z szablonu "template0" używając kodowania UTF-8.

Do usunięcia i odtworzenia szablonu "template1" pomocny może być poradnik na journal.tianhao.info. Jeżeli "template_postgis" także istnieje to możemy go usunąć bazując na krokach 1 i 2 z tego poradnika. Po wykonaniu tych czynności możemy użyć skryptu "create_template_postgis*.sh" z dokumentacji Django do stworzenia szablonów postgisowych (lub też zrobić to samemu korzystając np. z poradnika na wiki archlinux).

RkBlog

Django, 18 February 2013, Piotr Maliński

Comment article