Настройка подключения к базе данных с использованием переменной среды в 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