ver usuarios usuario usar tipos privilegios postgres pg_hba mostrar desde datos configurar conf como comandos cero aprender postgresql phppgadmin

usar - usuarios y roles en postgresql



¿Cómo puedo cambiar la codificación de la base de datos PostgreSQL usando sql o phpPgAdmin? (3)

Puede cambiar la codificación sobre la marcha sin volcar / restaurar:

update pg_database set encoding = pg_char_to_encoding(''UTF8'') where datname = ''database_name''

¿Cómo puedo cambiar la codificación de la base de datos PostgreSQL usando sql o phpPgAdmin?


Para ampliar las respuestas dadas, puede usar estos comandos para realizar su tarea.

// Backup the database to outfile pg_dump dbname > outfile // Terminate all connections to the database psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname=''dbname'';" // Delete the database psql -c "DROP DATABASE dbname;" //Re-create the database using the encoding keyword psql -c "CREATE DATABASE dbname ENCODING=''UTF8'';" //Import the saved data psql -f outfile

Base de datos de descarga: http://www.postgresql.org/docs/9.4/static/backup-dump.html

Creando base de datos: http://www.postgresql.org/docs/9.4/static/sql-createdatabase.html

Esta es una lista de todas las codificaciones disponibles para la versión 9.4: http://www.postgresql.org/docs/9.4/static/multibyte.html#MULTIBYTE- CHARSET- SUPPORTED


En resumen, no puede hacer esto solo con phpPgAdmin o SQL sin arriesgarse a la corrupción de datos existentes . Debe exportar todos los datos, crear una base de datos con la codificación correcta y restaurar los datos exportados.

Así es como debes proceder:

  1. crear volcado de base de datos :

    pg_dump your_database > your_database.sql

    esto guardará su base de datos en formato sql, en la codificación que tiene actualmente.

  2. eliminar la base de datos (o cambiarle el nombre):

    DROP DATABASE your_database

    si tienes suficiente espacio de almacenamiento para hacerlo, te recomiendo que dejes la base de datos anterior hasta que te asegures de que todo está bien con la nueva, cámbiale el nombre :

    ALTER DATABASE your_database RENAME TO your_database_backup;

  3. crear una base de datos con nueva codificación :

    CREATE DATABASE your_database WITH ENCODING ''UNICODE'' TEMPLATE=template0;

  4. importar datos del volcado creado antes :

    PGCLIENTENCODING=YOUR_OLD_ENCODING psql -f your_database.sql your_database

    necesita establecer la codificación del cliente psql a la que tenía en la base de datos anterior.

Cambiar la codificación sobre la marcha no es posible, ya que requeriría reescribir la mayoría de los datos internos de la base de datos, lo que es casi igual a la recreación del modo db que describí.

Es posible simplemente alterar las informaciones internas de postgres sobre la base de datos y cualquier dato nuevo después de que esta alteración se guardará correctamente, sin embargo, los datos existentes podrían corromperse .