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

Узнайте, как использовать PostgreSQL в приложении Ruby on Rails вместо базы данных SQLite, установленной по умолчанию. SQLite — это простой в настройке, легкий продукт, который поставляется с Ruby on Rails по умолчанию. Однако PostgreSQL — это более надежное решение, которое обеспечивает более продвинутые функции, масштабирование и стабильность, что может сделать его более подходящим для вашего проекта Ruby on Rails.

Требования

  • Облачный сервер под управлением Linux (Ubuntu 16.04).
  • Установленный и запущенный PostgreSQL.
  • Установленный и запущенный Ruby on Rails.
  • Базовое знакомство с Ruby on Rails.
Примечание

Все команды в этом руководстве должны выполняться от имени пользователя Rails. Это учетная запись пользователя, которую вы использовали для установки и запуска Ruby on Rails.

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

Создайте пользователя PostgreSQL, чтобы ваше приложение Ruby on Rails могло подключаться к базе данных PostgreSQL:

sudo -u postgres createuser -s [username]
Примечание

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

Например, чтобы создать имя пользователя PostgreSQL jdoe, выполните следующую команду:

sudo -u postgres createuser -s jdoe

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

sudo -u postgres psql

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

password [username]

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

password jdoe

Введите и подтвердите пароль. Затем выйдите из клиента PostgreSQL:

q

Настройка Rails-приложения

Следующим шагом будет включение поддержки PostgreSQL в вашем приложении Ruby on Rails.

Создайте приложение

Сначала создайте приложение, используя флаг -d postgresql:

rails new [application name] -d postgresql

Например, команда для создания приложения с именем my-app имеет следующий вид:

rails new my-app -d postgresql

Флаг -d сообщает Ruby on Rails, что вы будете использовать PostgreSQL для этого приложения.

Добавьте имя пользователя и пароль PostgreSQL

Затем перейдите в каталог, который Ruby on Rails создал для приложения:

cd my-app

Отредактируйте файл config/database.yml:

nano config/database.yml

Прокрутите вниз до раздела, который гласит:

# The specified database role being used to connect to postgres.
# To create additional roles in postgres see `$ createuser --help`.
# When left blank, postgres will use the default role. This is
# the same name as the operating system user that initialized the database.
#username: my-app2

Удалите # в последней строке, чтобы снять комментарий, и измените имя пользователя на то, которое вы создали:

# The specified database role being used to connect to postgres.
# To create additional roles in postgres see `$ createuser --help`.
# When left blank, postgres will use the default role. This is
# the same name as the operating system user that initialized the database.
username: jdoe

В следующем разделе удалите #, чтобы снять комментарий с последней строки, и добавьте пароль для пользователя jdoe:

# The password associated with the postgres role (username).
password: XPmMxZf

Сохраните и выйдите из файла.

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

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

rake db:create

Протестируйте конфигурацию

Чтобы протестировать конфигурацию, просто запустите приложение rails и проверьте его в браузере.

Из каталога приложения используйте команду:

bin/rails s --binding=0.0.0.0 
Примечание

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

Сервер должен ответить:

[user@localhost my-app]$ bin/rails server
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

Переключитесь на браузер и посетите сайт «http://your-ip-address:3000». Например, если ваш IP-адрес 198.162.0.1, вы перейдете на http://198.162.0:3000.

Если все в порядке и Rails смог подключиться к PostgreSQL, вы увидите стандартную приветственную страницу Rails.

Оцените статью
cdelat.ru
Добавить комментарий