Изменение кодировки в PostgreSQL 9.1
у меня есть следующие базы данных
sudo -u postgres psql -c "list"
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | LATIN1 | en_US | en_US |
template0 | postgres | LATIN1 | en_US | en_US | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | LATIN1 | en_US | en_US | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
как я могу изменить кодировку с LATIN1 на UTF8 в базе данных template1
или template0
?
2 ответов
поскольку у вас нет никаких фактических данных здесь, просто выключите и удалите кластер (сервер и набор баз данных) и создайте его заново. Какую операционную систему вы используете? Стандартная команда PostgreSQL для создания нового кластера-initdb, но в Debian / Ubuntu et al вы обычно используете pg_createcluster
см. также как изменить кодировку символов базы данных postgres?
хотя can попробуйте настроить кодировки, это не рекомендуемый. Несмотря на то, что я предложил это в этом связанном вопросе, если у вас есть данные с символами latin1, вам нужно будет перекодировать их в utf-8.
просто использовать:
обновить кодировку набора pg_database = pg_char_to_encoding ('LATIN1'), где datname = 'seguros'