Часто требуется работать с PostgreSQL. И каждый раз лезу в гугл, чтобы вспомнить что нужно делать, поэтому оставляю здесь для себя “стикер” с напоминалкой, что и как делается.

Юзер с правами на создание баз данных

Часто требуется на девелопменте, для быстрого разворачивания проекта, к примеру на Ruby on Rails.

sudo -u postgres psql
postgres=# CREATE USER user WITH PASSWORD '1234567' CREATEDB;
postgres=# \q

Идём в проект, и пишем в database.yml к примеру:

development:
  adapter: postgresql
  database: db_development
  username: user
  password: 1234567
  host: localhost

Теперь переходим, в папку проекта.

rake db:create

Вот и всё, теперь перед каждым проектом не нужно создавать базы вручную, достаточно использовать созданного нами пользователя, для всех проектов. Ну это конечно подходит только для девелопмента, а вот на рабочих проектах такие права пользователям лучше не раздавать, не хорошо это. Для таких случаев, следующий пункт.

Создание юзера и базу данных, привязываем их друг к другу.

Этот вариант больше подходит для продакшена. Безопасность, все дела :)

sudo -u postgres psql
postgres=# CREATE USER user WITH PASSWORD '1234567';
postgres=# CREATE DATABASE site_production WITH ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8';
postgres=# GRANT ALL PRIVILEGES ON DATABASE site_production TO user;
postgres=# \q

Это всё создаст нам базу, с кодировкой UTF-8. Так что будут работать методы типа lower, upper в PostgreSQL даже с кириллическими символами.