четверг, 15 ноября 2012 г.

PostgreSQL, plsql и кодовая страница Windows

Для обычного виндоадмина PostgreSQL - как взрыв мозга и разрыв GUI шаблонов ))
И так задача - нужно создать пользователя БД. Средство администрирования pgAdmin не позволяет создать пользователя для определенной БД. Можно создать роль, но как привязать её к БД средствами GUI интерфейса совсем непонятно. Ладно, берем утилиту psql.exe, запускаем и получаем грозное сообщение:

C:\Programs\PostgreSQL\9.0\bin>psql -U postgres

psql (9.0.10)
ПРЕДУПРЕЖДЕНИЕ: Кодовая страница консоли (866) отличается от основной
                страницы Windows (1251).
                8-битовые (русские) символы могут отображаться некорректно.
                Подробнее об этом смотрите документацию psql, раздел
                "Notes for Windows users".
Введите "help", чтобы получить справку.

Можно впасть в депрессию, представив что нужно будет читать иероглифы, полученные отображением cp1251 под dos866. Но не всё потеряно. Рецепт из доки:

  1. \q или Ctrl+Z - выходим обратно в шелл
  2. chcp 1251 - меняем кодировку шелла на win1251
  3. в свойствах окна шелла меняем шрифт на Lucida Console
Ок. Кодировку починили, делаем пользователя. В сеансе psql:
  1. Подключаемся к БД - CONNECT our_database_name
  2. Создаем роль CREATE USER djangoweb;
    (обазательно точку с запятой в конце, иначе не SQL не выполнится)