Поиск по сайту:

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

Несмотря на то, что база данных SQLite3 по умолчанию прекрасно работает с Ruby on Rails, в некоторых случаях нам не следует ее использовать. Например, если к вашему приложению Rails одновременно обращается большое количество пользователей, SQLite не рекомендуется. Нам следует попробовать более надежные базы данных, такие как MySQL или PostgreSQL, которые обеспечивают масштабируемость, параллелизм, централизацию и контроль. Мы уже знали, как использовать MySQL с приложением Rails. Сегодня мы увидим, как использовать PostgreSQL с приложением Ruby on Rails в Ubuntu Linux.

Предварительные условия

Я предполагаю, что вы уже установили последнюю версию Ruby on Rails в своей системе Linux. Если нет, обратитесь к следующему руководству.

  • Как установить Ruby On Rails в Linux

1. Установите PostgreSQL

Чтобы установить PostgreSQL в Debian, Ubuntu и их производных, запустите:

sudo apt install postgresql postgresql-contrib libpq-dev

Эта команда установит PostgreSQL вместе со всеми необходимыми зависимостями. Здесь libpq-dev — это библиотека PostgreSQL, которая позволяет клиентским программам передавать запросы на внутренний сервер PostgreSQL и получать результаты этих запросов. Эта библиотека необходима для подключения к PostgreSQL при настройке приложения Rails.

Убедитесь, что служба postgresql запущена и включена при запуске:

sudo systemctl start postgresql
sudo systemctl enable postgresql

Чтобы просмотреть текущий статус службы postgresql, запустите:

systemctl status postgresql

1.1. Создать новую роль базы данных

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

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

sudo -u postgres createuser -s ostechnix -P

Здесь,

  • sudo -u postgres — позволяет запустить команду из учетной записи postgres.
  • createuser -s ostechnix — создайте новую роль с именем ostechnix с привилегиями суперпользователя.
  • -P — предлагает ввести пароль для новой роли.

2. Используйте PostgreSQL с приложением Ruby on Rails в Linux.

Чтобы создать новое приложение Rails под названием ostechnixapp и использовать PostgreSQL в качестве базы данных по умолчанию, запустите:

rails new ostechnixapp -d postgresql

Это создаст приложение Rails с именем ostechnixapp в каталоге с именем ostechnixapp и установит зависимости Gem, которые уже упомянуты в Gemfile, используя bundle. установить.

После создания приложения ostechnixapp переключитесь в его каталог:

cd ostechnixapp/

Отредактируйте файл конфигурации базы данных приложения:

vi config/database.yml

В разделе default добавьте роль базы данных PosgreSQL и ее пароль, который мы создали на предыдущем шаге:

[...]
default: &default
   adapter: postgresql
   encoding: unicode
   # For details on connection pooling, see Rails configuration guide
   # https://guides.rubyonrails.org/configuring.html#database-pooling
   pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
   username: ostechnix
   password: Password123#@!
[...]

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

Замените имя пользователя и его пароль на свои собственные. Нажмите ESC и введите :wq, чтобы сохранить и закрыть файл.

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

rake db:create

Это создаст две базы данных с именем вашего приложения Rails. Например, если имя приложения — ostechnixapp, оно создаст ostechnixapp_development и ostechnixapp_test.

Created database 'ostechnixapp_development'
Created database 'ostechnixapp_test'

Вы можете убедиться в этом, если базы данных также успешно созданы из PosgreSQL.

Войдите в PosgreSQL:

sudo -u postgres psql

В командной строке postgresql запустите \l, чтобы просмотреть список доступных баз данных:

postgres=# \l

Пример вывода:

                                       List of databases
            Name           |   Owner   | Encoding | Collate |  Ctype  |   Access privileges   
 --------------------------+-----------+----------+---------+---------+-----------------------
  ostechnixapp_development | ostechnix | UTF8     | C.UTF-8 | C.UTF-8 | 
  ostechnixapp_test        | ostechnix | UTF8     | C.UTF-8 | C.UTF-8 | 
  postgres                 | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | 
  template0                | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
                           |           |          |         |         | postgres=CTc/postgres
  template1                | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
                           |           |          |         |         | postgres=CTc/postgres
 (5 rows)
 postgres=# 

Используйте PostgreSQL с приложением Ruby on Rails

Выйдите из командной строки PostgreSQL, введя \q.

postgres=# \q

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

rails server -b 0.0.0.0

Это запустит ваше приложение Rails на порту по умолчанию 3000. Здесь мы передали аргумент -b 0.0.0.0, чтобы получить доступ к приложению Rails с любого компьютера в локальной сети.

Откройте веб-браузер и откройте тестовую страницу Rails, перейдя по URL-адресу: http://ip-address:3000.

Тестовая страница приложения Ruby on Rails

Если вы хотите использовать другой порт, передайте флаг -p вместе с номером порта, как показано ниже:

rails server -b 0.0.0.0 -p 8080

Теперь к приложению Rails можно получить доступ по этому URL-адресу: http://ip-address:8080.

3. Удалить приложение Rails

Если вы использовали базу данных по умолчанию — SQLite, вы можете удалить приложение Rails, просто удалив каталог его приложения.

rm -fr ostechnixapp

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

rake db:drop

А затем удалите каталог приложения:

rm -fr ostechnixapp

Заключение

Теперь вы знаете, как создать приложение Rails с PostgreSQL в качестве базы данных. Как я уже упоминал, если ваше приложение активно используется большим количеством пользователей, вам необходимо использовать PostgreSQL или MySQL. Это также может быть полезно, если вы захотите масштабировать базу данных в будущем, управлять своей базой данных из удаленной системы.

Связанное чтение:

  • Настройка подключения к базе данных с использованием переменной среды в Rails

Статьи по данной тематике