Ändern der Datenbanksortierung, Ctype, die in Postgresql
wie ändere ich die Sortierung, die cType - en_IN
aus en_US.UTF-8
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
: postgres=CTc/postgres
meine aktuelle postgresversion 8,4
ich habe es installiert mit
sudo apt-get install postgresql-8.4 postgresql-contrib-8.4
im dies zu tun, in meinem ubuntu-amazon-ec2-server
Sie können nicht ändern, die Datenbank-Sortierung. Sie brauchen, um neu zu erstellen (dump/reload) wird die Datenbank mit der neuen Sortierung
wenn ich versuche eine Datenbank zu erstellen mit en_IN nicht in der Lage, es zu tun 🙁
derzeit im mit meine eigene lokale system als server.. und läuft bereits. nun habe ich ein neues ubuntu 12.04 amazon ec2-instance von amazon und ich bin versucht, meinen server. so, wie u sagen, sollte ich das tun? plz
wenn ich versuche eine Datenbank zu erstellen mit en_IN nicht in der Lage, es zu tun 🙁
derzeit im mit meine eigene lokale system als server.. und läuft bereits. nun habe ich ein neues ubuntu 12.04 amazon ec2-instance von amazon und ich bin versucht, meinen server. so, wie u sagen, sollte ich das tun? plz
InformationsquelleAutor Mani Deep | 2013-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Empfehlung:
nehmen pg_dumpall
re-Initialisierung der db-cluster machen, dass die locale-Informationen korrekt
Wiederherstellung Ihrer dump.
Ich habe festgestellt, dass es manchmal möglich ist, dass man zum erstellen einer db mit template template0 (-T template0 von bash oder
WITH TEMPLATE template0
von psql), eine nicht-init-db locale.Sie werden sicherlich wollen, Lesen Sie die Dokumentation und sehen Sie, wie das Systemgebietsschema eingerichtet ist, aber im Allgemeinen kann man:
initdb --lc-collate en_IN --lc-ctype en_IN -D ....
InformationsquelleAutor Chris Travers
Ist es nicht notwendig, neu zu erstellen, die die gesamte Datenbank-cluster. Sie müssen sich jedoch neu erstellen Sie Ihre Datenbank.
Createdb ausführen, die mit diesen Optionen (
man createdb
):Es scheint, Sie können nicht wirklich ändern Sie die Sortierung einer vorhandenen Datenbank:
Beachten Sie, dass die set-Sortierung für eine Tabelle oder eine Spalte, finden Sie eine gute tutorial auf Sortierungen in PostgreSQL.
InformationsquelleAutor Yaroslav Nikitenko
Dieser arbeitete für mich, für meine DEV Datenbank. Versuchen Sie nicht, diese für Ihre Produktions-Datenbank. Sie kann Locker die vorhandenen Indizes.
Wiederholen Sie die folgenden Abfrage für
template1
&template0
sowieupdate pg_database set datcollate='en_IN', datctype='UTF-8' where datname='postgres'
REINDEX DATABASE
nach dem Wechsel datcollate/datctype.Also, wenn Sie Neuindizierung der Datenbank nach, dies zu tun, es ist ziemlich ok dann?
Dieser thread, und speziell die Nachricht in den thread unter postgresql.org/message-id/19909.1499880683%40sss.pgh.pa.us, ziemlich voll detail, warum das eine schreckliche Idee.
InformationsquelleAutor Santosh