PostgreSQL: зачем и как

Illustration of a person sitting on the floor, leaning against a wall, engrossed in reading a tablet, with a focus on orange sneakers. Illustration of a person sitting on the floor, leaning against a wall, engrossed in reading a tablet, with a focus on orange sneakers.

По-умолчанию в качестве базы данных Rails предлагает использовать SQLite 3, автономную базу данных, которая неплохо подходит для получения первого опыта в разработке приложений. Одной из особенностей SQLite является невозможность одновременно выполнять более одной операции записи, поэтому чем скорее вы откажетесь от её использования, тем лучше. При разработке приложений зачастую практикуется подход, при котором development среда имеет минимум отличий от production среды. Это позволяет значительно уменьшить вероятность появления проблем, которые могут возникнуть из-за использования различных инструментов при разработке и при работе приложения в продакшене. Этот подход является одной из причин для того, чтобы задуматься об использовании PostgreSQL в разработке.

Здесь можно спросить себя: а почему именно PostgreSQL? Почему не MySQL или другая СУБД? Дело в том, что PostgreSQL стал фактически уже стандартом при работе над приложениями на Ruby on Rails. Он быстрый, расширяемый, адаптирован к высоким нагрузкам и использует такой подход к хранению данных, при котором достаточно сложно ошибиться, принимая те или иные решения (по сравнению, например, с MySQL).

Вот несколько ссылок, которые наглядно перечисляют все за и против:

Поскольку для разработки на Rails имеет смысл использовать OS X или ОС семейства Linux, рассмотрим установку PostgreSQL для Ubuntu и Mac OS X.

Содержание:

Установка PostgreSQL на Ubuntu 14.04

Во-первых, обновим удаленные репозитории:

sudo apt-get update

Затем непосредственно установим PostgreSQL:

sudo apt-get install postgresql-9.3

Строго говоря, база данных установлена. Убедимся в этом, войдя в терминал СУБД под стандартным пользователем postgres:

sudo -u postgres psql

Если СУБД установлена корректно, в терминале появится ответ с приглашением к вводу команд:

psql (9.3.5)
Type "help" for help.

postgres=#

Установка PostgreSQL на Mac OS X через Homebrew

Одним из наиболее простых способов установки PostgreSQL на OS X является Homebrew. Обновим список пакетов:

brew update

Установим PostgreSQL:

brew install postgresql

Если вы хотите, чтобы СУБД запускалась при старте системы, выполните команду:

ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

Запустим PostgreSQL:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Готово.

Установка PostgreSQL на Mac OS X через Postgresapp

Помимо Homebrew СУБД PostgreSQL можно установить так же при помощи специального комплекта приложений, доступного для скачивания по адресу http://postgresapp.com/.

Пакет включает в себя саму PostgreSQL, PostGIS и еще несколько популярных расширений, отсутствие которых, впрочем, нисколько не помешает вам начать разрабатывать Rails-приложения использующие PostgreSQL.

Установка производится перетаскиванием иконки из загруженного пакета в папку Applications (Программы).

Проверка установки

Создадим тестовую базу данных:

postgres=# CREATE DATABASE rainbow_db;

И пользователя:

postgres=# CREATE USER happy_user WITH password 'gottasecret';

Выйдем из терминала СУБД, введя команду \q и попробуем войти туда снова, используя свежесозданного пользователя:

psql -h localhost rainbow_db happy_user

После ввода пароля, терминал PostgreSQL поприветствует нас приглашением к вводу команд:

psql (9.3.5)
Type "help" for help.

rainbow_db=>

Для надежности проверим, может ли пользователь работать с текущей базой данных:

raindbow_db=> CREATE TABLE unicorns(happy BOOLEAN);
CREATE TABLE

Таблица unicorns создалась, значит все в порядке, PostgreSQL установлен и готов к работе.

Базовые команды PostgreSQL

Чтобы работать с PostgreSQL, необходимо знать некоторые базовые команды. Некоторые из них, наиболее полезные, приведены ниже.

Вход в PostgreSQL:

psql -d имя_базы_данных -U имя_пользователя -W
psql -h удаленный_хост -d имя_базы_данных -U имя_пользователя -W

Стандартный администраторский вход:

sudo -u postgres psql -U postgres
sudo -u postgres psql

Команды терминала psql

  • \dt – показать все таблицы
  • \q – выход из терминала psql
  • \dn – показать все схемы
  • \du – показать всех пользователей
  • \d имя_таблицы - показать информацию о таблице

И помните, что в любой непонятной ситуации стоит обращаться к официальной документации: http://www.postgresql.org/docs/, которой, в отличии от доков к MySQL, удобно пользоваться ;-)