Esta guía explica por qué necesita usar una variable de entorno para conectarse a una base de datos y cómo configurar la conexión de la base de datos usando la variable de entorno en la aplicación Rails en Linux.
¿Por qué usar la variable de entorno para configurar la base de datos?
Cada aplicación de Rails interactuará con su respectiva base de datos. Hay dos formas de conectarse con una base de datos en una aplicación Rails. Puede conectarse a una base de datos a través de un archivo de configuración de base de datos llamado config/database.yml
o usando una variable de entorno llamada ENV['DATABASE_URL']
. Ya te hemos mostrado cómo crear una aplicación Rails con una base de datos MySQL o una base de datos PostgreSQL . En estas dos guías, configuramos la conexión de la base de datos usando config/database.yml
archivo.
Si es la única persona que trabaja en un proyecto de Rails, está bien almacenar las credenciales de la base de datos en config/database.yml
expediente. Pero si el proyecto está alojado en un repositorio Git público y muchos desarrolladores están trabajando en él, no se recomienda almacenar información confidencial como contraseñas en config/database.yml
. expediente. Además, los detalles de la base de datos de cada desarrollador pueden ser diferentes, es decir, nombre de usuario y contraseña. Cada vez que insertamos el código, habrá un conflicto en un archivo. Es por eso que necesitamos almacenar las credenciales de la base de datos en una variable de entorno en lugar de escribirlas directamente en el archivo de configuración de la base de datos.
Configure la conexión de la base de datos utilizando la variable de entorno en la aplicación Rails
Supongo que tiene el último Ruby on Rails en su máquina Linux. Si aún no ha instalado Ruby on Rails, consulte la siguiente guía.
- Cómo instalar Ruby On Rails en Linux
A continuación, cree una nueva aplicación Rails. Si desea utilizar MySQL con la aplicación Rails, ejecute el siguiente comando para crear una nueva aplicación Rails, a saber, ostechnixapp
:
$ rails new ostechnixapp -d mysql
Si desea utilizar PostgreSQL con la aplicación Rails, cree la nueva aplicación Rails llamada ostechnixapp
como a continuación:
$ rails new ostechnixapp -d postgresql
A continuación, agregue una nueva variable de entorno con la contraseña de usuario de su base de datos en el archivo de perfil de usuario, por ejemplo, ~/.bashrc
.
$ echo 'export OSTECHNIXAPP_DATABASE_PASSWORD="Database_User_Password"' >> ~/.bashrc
En el comando anterior, reemplace "OSTECHNIXAPP"
con el nombre de su aplicación y "Database_User_Password"
con la contraseña de usuario de la base de datos real.
Obtenga el ~/.bashrc
archivo para actualizar los cambios inmediatamente:
$ source ~/.bashrc
Ahora cambie al directorio de la aplicación:
$ cd ostechnixapp/
Edite el archivo de configuración de la base de datos de la aplicación:
$ vi config/database.yml
Si usa MySQL, agregue el nombre de usuario de la base de datos y la variable de entorno que agregamos a ~/.bashrc
archivo en el paso anterior, bajo el default
sección. Esto es lo que agregué en el archivo de configuración de 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 [...]
Nuevamente, debe reemplazar OSTECHNIXAPP_DATABASE_PASSWORD
con su variable de entorno correcta.
Si usa PostgreSQL, agregue el rol de la base de datos y la variable de entorno en default
sección como la siguiente:
[...] 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'] %> [...]
Después de agregar el rol de usuario de la base de datos y la variable de entorno, presione ESC
clave y escriba :wq
para guardar los cambios y salir del archivo.
Finalmente, cree la base de datos para su aplicación Rails usando el comando:
$ rake db:create
Este comando creará dos bases de datos, a saber, ostechnixapp_development
y ostechnixapp_test
.
Created database 'ostechnixapp_development' Created database 'ostechnixapp_test'
Ahora inicie la aplicación Rails en el servidor web integrado llamado puma usando el comando:
$ rails server -b 0.0.0.0
Abra su navegador web y acceda a la aplicación Rails navegando a http://ip-address:3000
URL Será recibido con la página de prueba predeterminada de Rails:
Como ya hice, si no desea revelar la contraseña de la base de datos a otros desarrolladores, debe configurar la conexión de la base de datos con una variable de entorno en una aplicación Rails. Si es un desarrollador único, simplemente puede usar el archivo de configuración de base de datos predeterminado.