Среди всех доступных систем управления базами данных, PostgreSQL является одной из самых популярных. Это известная система баз данных с открытым исходным кодом, славящаяся своей надежностью, богатым функционалом и производительностью. Поскольку PostgreSQL пользуется большой популярностью, она поддерживается практически всеми основными веб-фреймворками. Как и ее конкуренты MySQL и SQLite, PostgreSQL также имеет свои сильные и слабые стороны.
Ruby on Rails — это популярный веб-фреймворк, написанный на Ruby. Это фреймворк, независимый от базы данных, что означает, что он может работать с самыми разными БД. По умолчанию Rails предполагает использование SQL для работы с базами данных. Тем не менее, он также поддерживает интеграцию с PostgreSQL.
Это руководство поможет вам настроить PostgreSQL для вашего приложения на Ruby on Rails.
Ruby on Rails и PostgreSQL
Как PostgreSQL, так и Ruby on Rails доступны на любом дистрибутиве UNIX/Linux. Они должны быть доступны в стандартных репозиториях пакетов.
Альтернативный метод — использование RVM (Ruby Version Manager). Это специализированный инструмент для управления установками Ruby on Rails. Преимущество этого подхода заключается в том, что RVM создаст локальную установку Ruby on Rails. Он также может управлять несколькими версиями Ruby и легко переключаться между ними. Вот руководство, в котором подробно описаны шаги по установке Ruby on Rails с помощью RVM на Ubuntu.
Что касается PostgreSQL, ознакомьтесь с этим кратким руководством по установке и настройке PostgreSQL на Ubuntu.
-
Установка RVM
Процесс установки RVM довольно прост благодаря предлагаемому скрипту установки. Скрипт автоматически определяет систему Linux, а затем скачивает и устанавливает все необходимые пакеты. Нам понадобятся GPG-ключи RVM для проверки пакетов. Это гарантирует, что полученные пакеты не подделаны. Сначала добавьте GPG-ключи RVM:
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

Затем запустите скрипт установки RVM:
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

Наконец, проверьте установку:
|
1 |
type rvm | head -n 1 |
-
Установка Rails
Теперь мы можем использовать RVM для установки дополнительных компонентов. Установите фреймворк Rails с помощью RVM:
|
1 |
gem install rails |
-
Установка PostgreSQL
Для следующего шага требуется предварительно установленная в системе PostgreSQL. По умолчанию самый простой способ установить PostgreSQL — использовать стандартный менеджер пакетов. Он доступен для всех основных дистрибутивов Linux. Посетите страницу загрузки PostgreSQL для ознакомления со всеми доступными методами установки. В Ubuntu следующие команды настроят репозиторий PostgreSQL и сразу же установят его:
|
1 |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |

|
1 |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - |

|
1 |
sudo apt update && sudo apt install postgresql -y |

Чтобы включить поддержку PostgreSQL, нам нужно установить pg gem. Он позволяет взаимодействовать с PostgreSQL из кода Ruby:
|
1 |
gem install pg |
-
Настройка PostgreSQL
После установки мы настроим инструменты, которые понадобятся для наших проектов. Сначала переключитесь на пользователя PostgreSQL:
|
1 |
su - postgres |
Войдите в оболочку PostgreSQL:
|
1 |
psql |

В контексте PostgreSQL мы теперь создадим новую роль (классически известную как пользователь). PostgreSQL имеет свой собственный формат ролей и прав доступа. Не забудьте использовать подходящее имя пользователя и надежный пароль:
|
1 |
create role <username> with createdb login password 'password123'; |
Создание приложения Rails
Укажите Rails создать новое приложение Rails, настроенное на использование PostgreSQL в качестве базы данных:
|
1 |
rails new <app_name> --database=postgresql |

Это создаст новый каталог с именем пользователя приложения. Rails обычно ожидает, что имя пользователя базы данных и имя приложения будут совпадать. Следующим шагом является настройка конфигурации базы данных Rails. Конфигурационный файл находится по следующему пути:
|
1 |
RAILS_ROOT/config/database.yml |
Файл database.yml содержит данные, описывающие соответствующую базу данных для текущего окружения Rails. Как следует из имени файла, он использует YAML. YAML — это удобный для человека стандарт сериализации данных для всех языков программирования.
По умолчанию Rails ожидает разные базы данных для разных окружений, например, development, test, и production. Это полезно в различных ситуациях, например, Rails будет очищать и пересоздавать базу данных test при каждом запуске тестов Rails.
Вот пример файла database.yml, который содержит базы данных development и test :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
development: adapter: postgresql encoding: unicode database: dummyapp_development pool: 5 username: dummyapp password: password123 test: adapter: postgresql encoding: unicode database: myapp_test pool: 5 username: dummyapp password: password123 |

Теперь пришло время применить изменения. Следующая команда подготовит необходимые базы данных, описанные в database.yml. Каждая база данных будет иметь своих пользователей и таблицы schema_migrations . Эта таблица необходима для миграции данных и схемы:
|
1 |
rake db:setup |
Этот шаг завершится ошибкой, если конфигурационный файл PostgreSQL pg_hba.conf содержит неверные настройки. Файл находится по следующему пути:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
Целевой строкой является следующая. Вместо peer, метод аутентификации должен быть md5:
|
1 |
local all all peer |
Измените строку:
|
1 |
local all all md5 |

Чтобы изменения вступили в силу, необходимо перезапустить службу PostgreSQL:
|
1 |
sudo systemctl restart postgresql |
Затем снова запустите настройку базы данных:
|
1 |
rake db:setup |
Запуск Rails
Для запуска сервера Rails требуется следующий дополнительный компонент. Обратите внимание, что для этого вам понадобится установленный Node.js (с yarn):
|
1 |
rails webpacker:install |

Теперь приложение Rails должно быть готово к запуску. Запустите сервер Rails:
|
1 |
rails server |

Сервер должен быть доступен по следующему URL-адресу. Он откроет целевую страницу Rails:
|
1 |
http://localhost:3000 |
Чтобы сделать целевую страницу более интересной, создайте scaffold:
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
Наконец, запустите сервер и снова перейдите по URL-адресу. Теперь мы можем управлять публикациями (создавать, редактировать и удалять публикации).
Заключение
Это базовая настройка Ruby on Rails с PostgreSQL. Существует официальное руководство по началу работы, которое поможет вам в дальнейшем использовании Rails. Созданное нами демонстрационное приложение использует PostgreSQL. Таким образом, вы можете создать любое приложение, использующее PostgreSQL для своей работы.
Приятной работы!


Комментарии
Комментариев пока нет. Будьте первым.