J'ai ces collations:
postgres = # Sélectionnez * à partir de pg_collation; Collname | CollnamesPace | Collier | Collençage | Collcolate | collisiontype [.____] ------------ + ---------------- + ------------ + --- ------------ + -------------- + ------------ Par défaut | 11 | 10 | -1 | | [.____] c | 11 | 10 | -1 | C | C POSIX | 11 | 10 | -1 | POSIX | POSIX EN_US | 11 | 10 | 6 | EN_US.UTF8 | EN_US.UTF8 EN_US.UTF8 | 11 | 10 | 6 | EN_US.UTF8 | EN_US.UTF8 UCS_BASIC | 11 | 10 | 6 | C | C [.____] (6 rangées)
J'ai installé un nouveau paramètre local sur mon système et j'aimerais l'utiliser sur Postgres. Il semble que le seul moyen d'installer une nouvelle collision utilise la commande initdb
, mais elle nécessite de faire un pg_dumpall
, supprimer le répertoire de données Postgres, exécuter initdb
et restaurer toutes les données du décharge. N'y a-t-il pas une solution plus facile?
Vous n'avez pas besoin de créer un nouveau cluster de DB. Vous pouvez utiliser (CREATE COLLATION
dans Postgres 9.1 ou ultérieure. Exemple dans le manuel:
Pour créer une collation à partir du système d'exploitation locale fr_fr.utf8 (en supposant que le codage actuel de la base de données est UTF8):
CREATE COLLATION french (LOCALE = 'fr_FR.utf8');
Assurez-vous de lire le chapitre Gestion des collations dans le manuel pour comprendre les détails. En particulier:
Dans une base de données particulière, seules des collations utilisant le codage de cette base de données sont d'intérêt. Autres entrées dans
pg_collation
sont ignorés.
I.E., la collation doit correspondre à votre codage de la base de données à être disponible.
Mais il y a plus. Lis le.