Saltar al contenido

Cambiar la intercalación de la base de datos, Ctype en Postgresql

Solución:

Mi recomendación:

  1. toma un pg_dumpall

  2. reinicialice el clúster de base de datos, asegurándose de que la información de la configuración regional sea correcta

  3. restaurar su vertedero.

He descubierto que a veces es posible que uno tenga que crear una base de datos con plantilla template0 (-T template0 de bash o WITH TEMPLATE template0 desde psql) para usar una configuración regional que no sea init-db.

No es necesario volver a crear todo el clúster de la base de datos. Sin embargo, debe volver a crear su base de datos.

Ejecute createdb con estas opciones (man createdb):

   -E encoding, --encoding=encoding
       Specifies the character encoding scheme to be used in this
       database. The character sets supported by the PostgreSQL server
       are described in Section 22.3.1, “Supported Character Sets”, in
       the documentation.

   -l locale, --locale=locale
       Specifies the locale to be used in this database. This is
       equivalent to specifying both --lc-collate and --lc-ctype.

   --lc-collate=locale
       Specifies the LC_COLLATE setting to be used in this database.

   --lc-ctype=locale
       Specifies the LC_CTYPE setting to be used in this database.

Parece que realmente no puede cambiar la intercalación de una base de datos existente:

=> ALTER DATABASE dbname SET "Collate" To Russian;
ERROR:  unrecognized configuration parameter "Collate"

Tenga en cuenta que puede establecer la intercalación para una tabla o columna; consulte un buen tutorial sobre intercalaciones en PostgreSQL.

Tuve que cambiarme a POSIX.UTF-8. Lo logré con los siguientes comandos:

su postgres
psql
l
update pg_database set datcollate="POSIX.UTF-8", datctype="POSIX.UTF-8" where datname="databasename";
l
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *