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é utilizar variables de entorno para configurar la base de datos?
Cada aplicación Rails interactúa con su respectiva base de datos. Hay dos formas de conectarse a una base de datos en una aplicación Rails. Puede conectarse a una base de datos utilizando un archivo de configuración de base de datos llamado config/database.yml
o usando una variable de entorno llamada ENV['DATABASE_URL']
. Ya le mostramos cómo crear una aplicación Rails usando una Base de datos MySQL o un Base de datos PostgreSQL. En estos dos manuales configuramos la conexión a 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 el config/database.yml
Archivo. Sin embargo, si el proyecto está alojado en un repositorio público de Git y hay muchos desarrolladores trabajando en él, no se recomienda mantener información confidencial como contraseñas en el config/database.yml
Archivo. Además, los detalles de la base de datos de cada desarrollador pueden ser diferentes, p. Ej. B. Nombre de usuario y contraseña. Cada vez que presionamos el código, hay un conflicto en un archivo. Debido a esto, 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 usando las variables de entorno en la aplicación Rails
Supongo que tiene la última versión de Ruby on Rails en su computadora Linux. Si aún no ha instalado Ruby on Rails, consulte las instrucciones a continuación.
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 ostechnixapp
::
$ rails new ostechnixapp -d mysql
Si desea utilizar la aplicación PostgreSQL con Rails, cree la nueva aplicación Rails llamada ostechnixapp
Como a continuación:
$ rails new ostechnixapp -d postgresql
A continuación, por ejemplo, agregue una nueva variable de entorno con la contraseña de usuario de su base de datos al archivo de perfil de su usuario ~/.bashrc
.
$ echo 'export OSTECHNIXAPP_DATABASE_PASSWORD="Database_User_Password"' >> ~/.bashrc
Reemplazar en el comando anterior "OSTECHNIXAPP"
con el nombre de su aplicación y "Database_User_Password"
con la contraseña de su usuario real de la base de datos.
Fuente de ~/.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 está utilizando MySQL, agregue el nombre de usuario de la base de datos y la variable de entorno que agregamos al ~/.bashrc
Archivo en el paso anterior bajo el default
Sección. Agregué lo siguiente 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, necesitas reemplazar OSTECHNIXAPP_DATABASE_PASSWORD
con su variable de entorno correcta.
Si está utilizando PostgreSQL, agregue el rol de la base de datos y la variable de entorno en default
Sección de la siguiente manera:
[...]
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 las variables de entorno, presione ESC
Clave y tipo :wq
para guardar los cambios y salir del archivo.
Finalmente, cree la base de datos para su aplicación Rails con el siguiente comando:
$ rake db:create
Esto se debe a que este comando crea dos bases de datos ostechnixapp_development
y ostechnixapp_test
.
Created database 'ostechnixapp_development' Created database 'ostechnixapp_test'
Ahora inicie la aplicación Rails en el servidor web integrado puma usando el comando:
$ rails server -b 0.0.0.0
Abra su navegador web y acceda a la aplicación Rails navegando http://ip-address:3000
Url. Será recibido con la página de prueba estándar de Rails:
Como yo, debe configurar la conexión de la base de datos con una variable de entorno en una aplicación Rails si no desea dar la contraseña de la base de datos a otros desarrolladores. Si es el único desarrollador, puede usar el archivo de configuración de base de datos estándar.
Recurso: