Tengo problemas para configurar y ejecutar una determinada base de datos. Estoy tratando de restaurar un volcado de postgreSQL que obtuve de otra persona. He intentado algunos métodos en vano.Configuración de configuraciones regionales en Linux para PostgreSQL
Directamente desde pg_restore
pg_restore -C -d postgres --exit-on-error maggie_prod_20111221.dump.sql
Creación de la base de datos y tablas primera
createdb -T template0 maggieprod -E LATIN1
SQL:
CREATE TABLESPACE magdat OWNER maggie LOCATION '/somewhere/magdat';
pg_restore -v -d template1 maggie_prod_20110121.dump.sql
Usando el primer método consigo el siguiente:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 2308; 1262 16386 DATABASE maggieprod postgres
pg_restore: [archiver (db)] could not execute query: ERROR: encoding LATIN1 does not match locale en_CA.utf8
DETAIL: The chosen LC_CTYPE setting requires encoding UTF8. Command was: CREATE DATABASE maggieprod WITH TEMPLATE = template0 ENCODING = 'LATIN1' TABLESPACE = magdat;
Un d utilizando la segunda, cuando intento crear la base de datos me sale:
createdb: database creation failed: ERROR: encoding LATIN1 does not match locale en_CA.utf8
DETAIL: The chosen LC_CTYPE setting requires encoding UTF8.
Por lo tanto, parece ser que no puedo crear una base de datos de codificación LATIN1? ¿Porqué es eso? Soy nuevo en configuraciones regionales y codificación y no sé mucho sobre ellos. Solo sé que el volcado fue hecho de una base de datos LATIN1.
La salida de locale
es:
LANG=en_CA.utf8 LC_CTYPE="en_CA.utf8" LC_NUMERIC="en_CA.utf8" LC_TIME="en_CA.utf8" LC_COLLATE="en_CA.utf8" LC_MONETARY="en_CA.utf8" LC_MESSAGES="en_CA.utf8" LC_PAPER="en_CA.utf8" LC_NAME="en_CA.utf8" LC_ADDRESS="en_CA.utf8" LC_TELEPHONE="en_CA.utf8" LC_MEASUREMENT="en_CA.utf8" LC_IDENTIFICATION="en_CA.utf8" LC_ALL=
Y la salida de locale -a
es:
C en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IN en_IN.utf8 en_NG en_NG.utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZW.utf8 POSIX
no veo LATIN1 en el segundo comando, debería hacerlo? Si es así, ¿cómo podría agregarlo? ¿Es correcto asumir que necesito cambiar la configuración regional en mi computadora? Si es así, ¿hay alguna forma de hacerlo solo para postgreSQL? Además, cuando intento abrir el volcado, veo un montón de caracteres basura, supongo que esto se debe a la codificación, ¿cómo lo vería correctamente?
Gracias por cualquier ayuda.