Как использовать PostgreSQL с приложением Ruby on Rails в CentOS 7

Вступление

Ruby on Rails использует sqlite3 в качестве базы данных по умолчанию, которая прекрасно работает во многих случаях, но может оказаться недостаточной для вашего приложения. Если вашему приложению требуется масштабируемость, централизация и контроль (или любая другая функция) базы данных SQL клиент-сервер, например https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql -a-сравнение-реляционных систем управления базами данных [PostgreSQL или MySQL], вам потребуется выполнить несколько дополнительных шагов, чтобы запустить его.

Из этого туториала вы узнаете, как настроить среду разработки Ruby on Rails, которая позволит вашим приложениям использовать базу данных PostgreSQL на сервере CentOS 7 или RHEL. Сначала мы расскажем, как установить и настроить PostgreSQL. Затем мы покажем вам, как создать приложение rails, которое использует PostgreSQL в качестве сервера базы данных.

Предпосылки

Этот учебник требует наличия рабочей среды разработки Ruby on Rails. Если у вас его еще нет, вы можете следовать руководству по этой ссылке: https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-centos -7 Как установить Ruby on Rails с помощью rbenv в CentOS 7].

Вам также потребуется доступ к учетной записи суперпользователя или + sudo +, чтобы вы могли установить программное обеспечение базы данных PostgreSQL.

В этом руководстве также предполагается, что SELinux отключен.

Когда вы будете готовы, давайте установим PostgreSQL.

Установить PostgreSQL

Если у вас еще не установлен PostgreSQL, давайте сделаем это сейчас.

Если вы еще этого не сделали, добавьте репозиторий EPEL в yum с помощью этой команды:

sudo yum install epel-release

Установите сервер PostgreSQL и его библиотеки разработки:

sudo yum install postgresql-server postgresql-contrib postgresql-devel

PostgreSQL установлен, но нам все еще нужно выполнить некоторую базовую настройку.

Создайте новый кластер базы данных PostgreSQL:

sudo postgresql-setup initdb

По умолчанию PostgreSQL не разрешает аутентификацию по паролю. Мы изменим это, отредактировав его конфигурацию аутентификации на основе хоста.

Откройте конфигурацию HBA в вашем любимом текстовом редакторе. Мы будем использовать vi:

sudo vi /var/lib/pgsql/data/pg_hba.conf

Найдите строки, которые выглядят следующим образом, в нижней части файла:

выдержка из pg_hba.conf (оригинал)

host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

Затем замените «идент» на «md5», чтобы они выглядели так:

выдержка из pg_hba.conf (обновлено)

host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

Сохранить и выйти. PostgreSQL теперь настроен для разрешения аутентификации по паролю.

Теперь запустите и включите PostgreSQL:

sudo systemctl start postgresql
sudo systemctl enable postgresql

PostgreSQL теперь установлен, но вы должны создать нового пользователя базы данных, который будет использовать ваше приложение Rails.

Создать базу данных пользователя

Сначала перейдите к системному пользователю + postgres +:

sudo su - postgres

Создайте пользователя-суперпользователя PostgreSQL с помощью этой команды (замените выделенное слово своим именем пользователя):

createuser -s

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

psql

Консоль PostgreSQL указывается в приглашении + postgres = # +. В командной строке PostgreSQL введите эту команду, чтобы установить пароль для пользователя базы данных, которого вы создали:

\password

Введите желаемый пароль в командной строке и подтвердите его.

Теперь вы можете выйти из консоли PostgreSQL, введя эту команду:

\q

Теперь, когда ваш пользователь PostgreSQL настроен, вернитесь к обычному пользователю:

exit

Давайте создадим приложение Rails сейчас.

Создать новое приложение Rails

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

cd ~
rails new  -d postgresql

Затем перейдите в каталог приложения:

cd

Следующим шагом является настройка соединения с базой данных приложения.

Настроить соединение с базой данных

Созданный вами пользователь PostgreSQL будет использоваться для создания тестовых и прикладных баз данных вашего приложения. Нам нужно настроить правильные параметры базы данных для вашего приложения.

Откройте файл конфигурации базы данных вашего приложения в вашем любимом текстовом редакторе. Мы будем использовать vi:

vi config/database.yml

В разделе + default + найдите строку с надписью “pool: 5” ​​и добавьте следующие строки под ней. Это должно выглядеть примерно так (замените подсвеченные части своим пользователем и паролем PostgreSQL):

config / database.yml выдержка

 host: localhost
 username:
 password:

Сохранить и выйти.

Создать базы данных приложений

Создайте свои базы данных приложений + development и` + test` с помощью этой команды rake:

rake db:create

Это создаст две базы данных на вашем сервере PostgreSQL. Например, если имя вашего приложения «appname», оно создаст базы данных «appname_development» и «appname_test».

Если в этот момент вы получите ошибку, вернитесь к предыдущему подразделу (Настройка подключения к базе данных), чтобы убедиться, что + host +, + username + и + password + в + database.yml + верны. Убедившись, что информация о базе данных верна, попробуйте снова создать базы данных приложения.

Тестовая конфигурация

Самый простой способ проверить, что ваше приложение может использовать базу данных PostgreSQL, - это попытаться запустить ее.

Например, чтобы запустить среду разработки (по умолчанию), используйте эту команду:

rails server

Это запустит ваше приложение Rails на вашем локальном хосте через порт 3000.

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

rails server --binding=

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

Посетите в веб-браузере:

http://:3000

Если вы видите страницу «Добро пожаловать на борт» Ruby on Rails, ваше приложение правильно настроено и подключено к базе данных PostgreSQL.

Заключение

Теперь вы готовы приступить к разработке приложения Ruby on Rails с PostgreSQL в качестве базы данных для CentOS 7!

Удачи!

Related