GNU/Linux >> Tutoriels Linux >  >> Linux

Configurer la connexion à la base de données à l'aide de la variable d'environnement dans les rails

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.


Linux
  1. Trucs et astuces pour les variables d'environnement Linux

  2. Configurer le gestionnaire d'API WSO2 avec la base de données MySQL

  3. Ssh – Vous utilisez un canal Ssh déjà établi ?

  4. Comment configurer une base de données esclave MySQL

  5. PuTTY :relooking extrême à l'aide du gestionnaire de connexion PuTTY

Comment définir une variable d'environnement dans Windows

Comment définir des variables d'environnement dans MacOS

Créer une base de données et une table MySQL à l'aide de PHP dans XAMPP

Comment définir une variable d'environnement dans Bash

Comment autoriser la connexion à distance à la base de données PostgreSQL à l'aide de psql

accessibilité des variables d'environnement sous Linux