locale nachträglich ändern

Hallo,

ich frage mich, welche Folgen es für die Datenbanken und die darauf zugreifenden Anwendungen hat, wenn ich einen Cluster, den ich mit de_DE.utf8 initialisiert habe, auf locale “C” zurücksetze.


Sprich:

pg_dumpall > datei.bak
rm -rf $PGDATA
unset LANG
unset LC_ALL
initdb -E UTF8 $PGDATA
psql -f datei.bak postgres

Ist das überhaupt möglich oder runiniert mir das meine Daten? Hat vielleicht schon jemand Erfahrung damit?

Ein initdb reinitialisiert den cluster - dieser ist danach natürlich leer!!

Locales können nicht einfach verändert werden (was LC_COLLATE sowie LC_CTYPE angeht) - außer durch initdb, was obiges zur Folge hat.

Natürlich ist der Cluster nach einem initdb leer, daß ist ja auch das Ziel.
Die Frage, die sich stellt, ist, was passiert mit den Daten, die ich zurücksichere?

Der pg_dumpall wurde ja mit einer anderen lokale gemacht, als der restore.

Ich mache einen dump mit lokale “de”, aber den restore mit lokale “C”. Wie wirkt sich das auf die Daten(banken) aus?

Sorry, jetzt verstehe ich worauf du hinauswillst… Ich weiß leider nicht, ob dies Daten beschädigen kann. Daher würde ich den Dump schon in entsprechendem Encoding machen. Dies kann mit mit der option -E angeben.

Siehe:
http://www.postgresql.org/docs/8.1/interactive/app-pgdump.html