postgresql 8.3 con encoding Latin1

Preparando el ambiente

Lo primero es configurar el soporte del locale correspondiente  que nos da compatibilidad con  Latin1, para ello hay que compilar el soporte de ISO-8959-1 para nuestro idioma configurado (en mi caso Español de Chile). Previamente
hay verificar que el paquete locales este instalado (aunque por defecto debería estar). Para ver una lista de los locales soportados podemos mirar el archivo “/usr/share/l10n/SUPPORTED”, una versión reducida  dice:

$cat /usr/share/i18n/SUPPORTED
...
es_CL.UTF-8 UTF-8
es_CL ISO-8859-1
es_CO.UTF-8 UTF-8
es_CO ISO-8859-1
es_CR.UTF-8 UTF-8
.....

Por ejemplo para habilitar el soporte iso-8859-1 para Chile  ejecutar:

$sudo locale-gen es_CL

Nota1:Luego podemos verificar con el comando “locale -a” que el encoding se haya habilitado.

Instalando postgresql 8.3

Via apt (synaptic) cargamos los paquetes necesarios  de postgres y la lista queda,

$apt-get install postgresql-8.3 postgresql-client-8.3 postgresql-common postgresql-plperl-8.3 postgresql-pltcl-8.3;
una vez terminada la instalación de los paquetes detenemos el servicio con "sudo /etc/init.d/postgresql-8.3 stop" o
"sudo service postgresql-8.3 stop" (a preferencia del artista).

Por defecto el cluster queda almacenado en el directorio “/var/lib/postgresql/8.3/main”, como hay que regenerar el cluster de base de datos  con nuevo locale se puede hacer lo siguiente:

A) Borrar el cluster, pero habrá que regenerar los certificados para el uso de SSL en las conexiones.
B) Renombrar el directorio a “main-old” y al finalizar copiar los certificados auto generados al momento de la instalación.

Como no quiero perder tiempo en regenerar los certificados, renombrare el directorio para tenerlo de respaldo para luego sacar los certificados, entonces ejecuto:

$mv /var/lib/postgresql/8.3/main /var/lib/postgresql/8.3/main-old

luego se debe crear el cluster con initdb (como usuario postgresl!):

$/usr/lib/postgresl/8.3/bin/initdb --locale=es_CL -U postgresql -D /var/lib/postgresql/8.3/main

Esto cargara una serie de scripts y configuraciones si no tenemos ningun error y volvemos a nuestra shell ahora, de lo contrario habra que revisar el error mostrado en pantalla. Ahora bastara copiar los certificados del antiguo directorio “/var/lib/postgresql/8.3/main-old” al nuevo y subir el servicio (service postgresql-8.3 start)

Nota2: Para verificar que nuestro cluster esa usando Latin1 podemos ejecutar psql -l,  debería mostrar:

    Listado de base de datos
  Nombre   |  Dueño  | Codificación
-----------+----------+---------------
 postgres  | postgres | LATIN1
 template0 | postgres | LATIN1
 template1 | postgres | LATIN1
(3 filas)

[1]https://help.ubuntu.com/community/LocaleConf
[2]http://www.postgresql.org/docs/8.3/static/locale.html
[3]http://www.nabble.com/Error-al-crear-una-base-en-espa%C3%B1ol…..-td20331659.html

Leave a comment

1 Comments.

Leave a Reply


[ Ctrl + Enter ]

Trackbacks and Pingbacks: