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

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

В этом руководстве объясняется, почему вам нужно использовать переменную среды для подключения к базе данных и как настроить соединение с базой данных с использованием переменной среды в приложении Rails в Linux.

Зачем использовать переменную среды для настройки базы данных?

Каждое приложение Rails будет взаимодействовать со своей соответствующей базой данных. Существует два способа подключения к базе данных в приложении Rails. Вы можете подключиться к базе данных через файл конфигурации базы данных с именем config/database.yml или с помощью переменной среды с именем ENV['DATABASE_URL']. Мы уже показали вам, как создать приложение Rails с базой данных MySQL или базой данных PostgreSQL. В этих двух руководствах мы настроили соединение с базой данных с помощью файла config/database.yml.

Если вы единственный человек, работающий над проектом Rails, можно хранить учетные данные базы данных в файле config/database.yml. Но если проект размещен в общедоступном репозитории Git и над ним работает много разработчиков, не рекомендуется хранить конфиденциальную информацию, например пароли, в файле config/database.yml. Кроме того, данные базы данных каждого разработчика могут отличаться, например, имя пользователя и пароль. Каждый раз, когда мы отправляем код, в файле возникает конфликт. Вот почему нам нужно хранить учетные данные базы данных в переменной среды, а не записывать их непосредственно в файл конфигурации базы данных.

Настройте соединение с базой данных, используя переменную среды в приложении Rails.

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

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

Затем создайте новое приложение Rails. Если вы хотите использовать MySQL с приложением Rails, выполните следующую команду, чтобы создать новое приложение Rails, а именно ostechnixapp:

rails new ostechnixapp -d mysql

Если вы хотите использовать PostgreSQL с приложением Rails, создайте новое приложение Rails под названием ostechnixapp, как показано ниже:

rails new ostechnixapp -d postgresql

Затем добавьте новую переменную среды с паролем пользователя вашей базы данных в файл профиля пользователя, например ~/.bashrc.

echo 'export OSTECHNIXAPP_DATABASE_PASSWORD="Database_User_Password"' >> ~/.bashrc

В приведенной выше команде замените "OSTECHNIXAPP" на имя вашего приложения и "Database_User_Password" на фактический пароль пользователя базы данных.

Используйте файл ~/.bashrc, чтобы немедленно обновить изменения:

source ~/.bashrc

Добавить переменную среды в файл bashrc

Теперь переключитесь в каталог приложения:

cd ostechnixapp/

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

vi config/database.yml

Если вы используете MySQL, добавьте имя пользователя базы данных и переменную среды, которые мы добавили в файл ~/.bashrc на предыдущем шаге, в разделе default. Вот что я добавил в файл конфигурации MySQL:

[...]
default: &default
   adapter: mysql2
   encoding: utf8mb4
   pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
   username: root
   password: <%= ENV['OSTECHNIXAPP_DATABASE_PASSWORD'] %>
   socket: /var/run/mysqld/mysqld.sock
[...]

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

Опять же, вы должны заменить OSTECHNIXAPP_DATABASE_PASSWORD на правильную переменную среды.

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

[...]
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: <%= ENV['OSTECHNIXAPP_DATABASE_PASSWORD'] %>
[...]

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

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

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

rake db:create

Эта команда создаст две базы данных, а именно ostechnixapp_development и ostechnixapp_test.

Created database 'ostechnixapp_development'
Created database 'ostechnixapp_test'

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

rails server -b 0.0.0.0

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

Тестовая страница Ruby on Rails по умолчанию

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

Ресурс:

  • Настройка баз данных в Rails

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