Site icon 8HOST.COM

Приложение Ruby on Rails на PostgreSQL в Ubuntu 14.04

По умолчанию Ruby on Rails использует sqlite3 в качестве системы управления базами данных (СУБД). Но иногда эта СУБД недостаточно производительна и не справляется с объёмными приложениями. Потому если приложение нуждается в масштабировании или централизации, рекомендуется использовать базу данных SQL (например, PostgreSQL или MySQL).

Данное руководство поможет настроить окружение разработки Ruby on Rails для использования PostgreSQL на сервере Ubuntu 14.04, включая установку и настройку PostgreSQL, а также создание приложения rails, использующего PostgreSQL в качестве сервера баз данных.

Требования

Для выполнения руководства нужна среда разработки Ruby on Rails. Чтобы получить инструкции по созданию такого окружения, читайте это руководство.

Кроме того, понадобится учётная запись пользователя с доступом к sudo.

Установка PostgreSQL

Установите систему управления базами данных PostgreSQL, если она не была установлена ранее.

Обновите список пакетов:

sudo apt-get update

Установите PostgreSQL и зависимые библиотеки СУБД:

sudo apt-get install postgresql postgresql-contrib libpq-dev

Система PostgreSQL установлена на сервер. Теперь нужно создать отдельного пользователя для приложения Rails.

Создание пользователя PostgreSQL

Чтобы создать суперпользователя PostgreSQL, введите команду:

sudo -u postgres createuser -s pguser

Примечание: Замените условное имя pguser именем своего пользователя.

Чтобы защитить новую учётную запись паролем, откройте консоль PostgreSQL:

sudo -u postgres psql

Консоль PostgreSQL определяется командной строкой:

postgres=#

Теперь введите эту команду, чтобы установить пароль для пользователя БД:

\password pguser

Выберите пароль и введите его в командную строку.

Закройте консоль PostgreSQL:

\q

Теперь можно приступать к созданию Rails-приложения.

Создание Rails-приложения

Создайте новое приложение Rails в домашнем каталоге. Используйте опцию -d postgresql, чтобы задать PostgreSQL как БД приложения. Не забудьте заменить условные данные руководства своими данными:

cd ~
rails new appname -d postgresql

Откройте каталог проекта:

cd appname

Теперь нужно настроить взаимодействие приложения с БД PostgreSQL.

Настройка подключения к PostgreSQL

Ранее созданный пользователь PostgreSQL будет использован программой для создания тестовой БД и БД разработки (test и development соответственно). Необходимо настроить соответствующие параметры базы данных для взаимодействия с приложением.

Откройте конфигурационный файл БД приложения:

vi config/database.yml

В разделе default найдите строку pool: 5 и добавьте после неё следующие строки. После этого файл будет иметь такой вид:

host: localhost
username: pguser
password: pguser_password

Примечание: Замените условные данные своими.

Сохраните и закройте файл.

Создание баз данных приложения

Теперь создайте базы данных development и test, выполнив команду:

rake db:create

Эта команда создаст две базы данных на сервере PostgreSQL. К примеру, если приложение называется appname, она создаст базы данных appname_development и appname_test.

При возникновении ошибки вернитесь к предыдущему разделу руководства и убедитесь, что в файле database.yml параметры host, username и password указаны правильно. Затем попробуйте создать базы данных снова.

Тестирование

Попробуйте запустить приложение, чтобы убедиться, что настройка выполнена правильно.

Чтобы запустить стандартное окружение разработки, введите команду:

rails server

Это запустит Rails-приложение на порт 3000 локального хоста.

Если приложение Rails находится на удалённом сервере и вы хотите получить к нему доступ в браузере, привяжите его к внешнему IP-адресу сервера. Сначала узнайте внешний IP-адрес сервера, а затем используйте следующую команду:

rails server --binding=внешний_IP_сервера

Теперь приложение доступно в браузере по следующей ссылке:

http://внешний_IP_сервера:3000

Если на экране появилась страница Welcome aboard, значит, настройка выполнена правильно, всё работает должным образом.

Заключение

Теперь можно приступать к разработке приложения Ruby on Rails на основе производительной БД PostgreSQL, используя тестовое приложение в качестве шаблона.