Gracias  Martín

 

 

También encontré esto

 

CREATE DATABASE base6 TEMPLATE template0 ENCODING 'LATIN1' LC_CTYPE 'es_CL'
LC_COLLATE 'es_CL';

 

 

Y así me deja crear bases en cualquier codificación así que no necesito
modificar el cluster. Ni el locale

Del Linux auque en su oportunidad lo are solo par chequear que fusca.

No he hecho pruebas. Pero mis bases están así dejo el link de donde lo
obtuve esta información.

 

Link:

 

http://www.postgresql.org/docs/8.4/static/multibyte.html

 

http://www.postgresql.org/docs/8.1/static/app-initdb.html

 

 

Mis bases:

 

 

Listado de base de datos

 

 Nombre   |  Dueño   | Codificación |  Collation  |    Ctype    |
Privilegios      

----------+----------+--------------+-------------+-------------+-----------
------------

 

Base1     | postgres | SQL_ASCII    | C           | C           |

Base2     | postgres | LATIN1       | es_CL       | es_CL       | 

Base3     | postgres | LATIN1       | es_CL       | es_CL       | 

 

Postgres  | postgres | UTF8         | es_ES.UTF-8 | es_ES.UTF-8 | 

template0 | postgres | UTF8         | es_ES.UTF-8 | es_ES.UTF-8 |
=c/postgres          +

 

          |          |              |             |             |
postgres=CTc/postgres

template1 | postgres | LATIN1       | es_ES.UTF-8 | es_ES.UTF-8 |
=c/postgres          +

          |          |              |             |             |
postgres=CTc/postgres

 

 

Las bases 2 y 3 son las que cree con el formato completo indicando el
LC_CTYPE y el LC_COLLETE.

Nose si tendré que ponerlo así es_CL o así es_CL.iso88591 en eso estoy.

 

 

 

Luego como me indicaste tendría que cargar los dump que fueron creados en
latin1.

 

1 creo dump en latin1 esto es de la base1 que es SQL_ASCII

 

Su - postgres -c 'pg_dump -E latin1 base1 | gzip > base1.dump.gz'

 

2 cargo este dump base1 a la base2 que tiene latin1

 

Su – postgres -c 'gunzip -c  /tmp/base1.dump.gz | psql base2'

 

 

 

 

Entonces seria así de fácil cambiar de SQL_ASCII a LATIN1

 

Me podrían confirmar por favor.

 

Voy hacer pruebas y les cuento.

 

 

 

Gracias 

 

 

 

-----Mensaje original-----
De: Martín Marqués [mailto:martin.marq...@gmail.com] 
Enviado el: Jueves, 03 de Febrero de 2011 10:56
Para: Patricio Cardenas Garay
CC: pgsql-es-ayuda
Asunto: Re: [pgsql-es-ayuda] ayuda dejar postgres 9.0 como latin1

 

Por favor, envia copia a la lista.

 

El día 3 de febrero de 2011 09:41, Patricio Cardenas Garay

<pcarde...@colegiointeractivo.com> escribió:

> 

> Hola amigo buen día:

> 

> Te cuento que por que he encontrado en la red

> Tengo que detener el postgres modificar el locale

> Del servidor Linux. Luego eliminar el cluster initd del postgres

 

Recorda que cuando eliminas un cluster, se borran todas las bases. Te

conviene hacer un backup antes.

 

> Y volverlo a cargar así tomara por defecto lo del Linux y comenzara

> A crear las bases como latin1.

> 

> ¿Tú tienes alguna guía como hacerlo?

> 

> Estoy con centos 5.5

> 

> Y tu tienes experiencia en pasar bases de datos que están como SQL_ASCII

> A LATIN1 esta es mi misión y estoy recompilando información de cómo
hacerlo.

 

pg_dump -E latin1 mibase > dump-base.sql

dropdb mibase

createdb -E latin1 mibase

psql -f  dump-base.sql -d mibase

 

> 

> Creo yo que una vez que tenga creada la base de datos como LATIN1 tendré
que

> leer toda la base con php e ir convirtiendo los datos a LATIN1.

 

No. Como mucho tendras que usar recode. Sino, setea el encoding del

cliente al del archivo y la del servidor deberia estar configurada al

de la base de datos.

 

Todo esto es independiente al COLLATE.

 

> O tu crees que si volcó un dump de la base que esta en SQL_ASCII

> En la Base con LATIN1 me convierta los datos hasta ahora si intento algo
así

> me da error de codificación.

 

SI. :-)

 

-- 

Martín Marqués

select 'martin.marques' || '@' || 'gmail.com'

DBA, Programador, Administrador

Responder a