Ce guide explique pourquoi vous devez utiliser une variable d'environnement pour vous connecter à une base de données et comment configurer la connexion à la base de données à l'aide d'une variable d'environnement dans l'application Rails sous Linux.
Pourquoi utiliser une variable d'environnement pour configurer la base de données ?
Chaque application Rails interagira avec sa base de données respective. Il existe deux façons de se connecter à une base de données dans une application Rails. Vous pouvez vous connecter à une base de données via un fichier de configuration de base de données appelé config/database.yml
ou en utilisant une variable d'environnement appelée ENV['DATABASE_URL']
. Nous vous avons déjà montré comment créer une application Rails avec une base de données MySQL ou une base de données PostgreSQL . Dans ces deux guides, nous avons configuré la connexion à la base de données en utilisant config/database.yml
fichier.
Si vous êtes la seule personne à travailler dans un projet Rails, vous pouvez stocker les informations d'identification de la base de données dans config/database.yml
dossier. Mais si le projet est hébergé dans un référentiel Git public et que de nombreux développeurs y travaillent, il n'est pas recommandé de stocker des informations sensibles comme les mots de passe dans le config/database.yml
dossier. De plus, les détails de la base de données de chaque développeur peuvent être différents, c'est-à-dire le nom d'utilisateur et le mot de passe. Chaque fois que nous poussons le code, il y aura un conflit dans un fichier. C'est pourquoi nous devons stocker les informations d'identification de la base de données dans une variable d'environnement plutôt que de les écrire directement dans le fichier de configuration de la base de données.
Configurer la connexion à la base de données à l'aide de la variable d'environnement dans l'application Rails
Je suppose que vous avez le dernier Ruby on Rails sur votre machine Linux. Si vous n'avez pas encore installé Ruby on Rails, consultez le guide suivant.
- Comment installer Ruby On Rails sous Linux
Ensuite, créez une nouvelle application Rails. Si vous souhaitez utiliser MySQL avec l'application Rails, exécutez la commande suivante pour créer une nouvelle application Rails, à savoir ostechnixapp
:
$ rails new ostechnixapp -d mysql
Si vous souhaitez utiliser PostgreSQL avec l'application Rails, créez la nouvelle application Rails appelée ostechnixapp
comme ci-dessous :
$ rails new ostechnixapp -d postgresql
Ensuite, ajoutez une nouvelle variable d'environnement avec votre mot de passe d'utilisateur de base de données dans le fichier de profil de votre utilisateur, par exemple ~/.bashrc
.
$ echo 'export OSTECHNIXAPP_DATABASE_PASSWORD="Database_User_Password"' >> ~/.bashrc
Dans la commande ci-dessus, remplacez "OSTECHNIXAPP"
avec le nom de votre application et "Database_User_Password"
avec le mot de passe de votre utilisateur de base de données actuel.
Sourcez le ~/.bashrc
fichier pour mettre à jour les modifications immédiatement :
$ source ~/.bashrc

Passez maintenant au répertoire de l'application :
$ cd ostechnixapp/
Modifiez le fichier de configuration de la base de données de l'application :
$ vi config/database.yml
Si vous utilisez MySQL, ajoutez le nom d'utilisateur de la base de données et la variable d'environnement que nous avons ajoutée au ~/.bashrc
fichier à l'étape précédente, sous le default
section. Voici ce que j'ai ajouté dans le fichier de configuration 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 [...]

Encore une fois, vous devez remplacer OSTECHNIXAPP_DATABASE_PASSWORD
avec votre variable d'environnement correcte.
Si vous utilisez PostgreSQL, ajoutez le rôle de la base de données et la variable d'environnement sous default
section comme ci-dessous :
[...] 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'] %> [...]

Après avoir ajouté le rôle d'utilisateur de la base de données et la variable d'environnement, appuyez sur ESC
clé et tapez :wq
pour enregistrer les modifications et quitter le fichier.
Enfin, créez la base de données de votre application Rails à l'aide de la commande :
$ rake db:create
Cette commande va créer deux bases de données à savoir ostechnixapp_development
et ostechnixapp_test
.
Created database 'ostechnixapp_development' Created database 'ostechnixapp_test'
Démarrez maintenant l'application Rails sur le serveur Web intégré appelé puma en utilisant la commande :
$ rails server -b 0.0.0.0
Ouvrez votre navigateur Web et accédez à l'application Rails en accédant à http://ip-address:3000
URL. Vous serez accueilli avec la page de test par défaut de Rails :

Comme je l'ai déjà fait, si vous ne souhaitez pas divulguer le mot de passe de la base de données à d'autres développeurs, vous devez configurer la connexion à la base de données avec une variable d'environnement dans une application Rails. Si vous êtes un développeur unique, vous pouvez simplement utiliser le fichier de configuration de la base de données par défaut.