GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konfigurieren Sie die Datenbankverbindung mithilfe der Umgebungsvariablen in Rails

Diese Anleitung erklärt, warum Sie eine Umgebungsvariable verwenden müssen, um eine Verbindung zu einer Datenbank herzustellen, und wie Sie die Datenbankverbindung mithilfe der Umgebungsvariable in der Rails-Anwendung unter Linux konfigurieren.

Warum Umgebungsvariable zum Konfigurieren der Datenbank verwenden?

Jede Rails-Anwendung interagiert mit ihrer jeweiligen Datenbank. Es gibt zwei Möglichkeiten, sich mit einer Datenbank in einer Rails-Anwendung zu verbinden. Sie können sich über eine Datenbankkonfigurationsdatei namens config/database.yml mit einer Datenbank verbinden oder mithilfe einer Umgebungsvariable namens ENV['DATABASE_URL'] . Wir haben Ihnen bereits gezeigt, wie Sie eine Rails-Anwendung mit einer MySQL-Datenbank erstellen oder eine PostgreSQL-Datenbank . In diesen beiden Anleitungen haben wir die Datenbankverbindung mit config/database.yml konfiguriert Datei.

Wenn Sie die einzige Person sind, die in einem Rails-Projekt arbeitet, ist es in Ordnung, Datenbankanmeldeinformationen in config/database.yml zu speichern Datei. Wenn das Projekt jedoch in einem öffentlichen Git-Repository gehostet wird und viele Entwickler daran arbeiten, ist es nicht empfehlenswert, sensible Informationen wie Passwörter in der config/database.yml zu speichern Datei. Außerdem können die Datenbankdetails jedes Entwicklers unterschiedlich sein, z. B. Benutzername und Passwort. Jedes Mal, wenn wir den Code pushen, wird es einen Konflikt in einer Datei geben. Aus diesem Grund müssen wir die Datenbankanmeldeinformationen in einer Umgebungsvariablen speichern, anstatt sie direkt in die Datenbankkonfigurationsdatei zu schreiben.

Datenbankverbindung mit Umgebungsvariable in der Rails-Anwendung konfigurieren

Ich gehe davon aus, dass Sie das neueste Ruby on Rails auf Ihrem Linux-Rechner haben. Wenn Sie Ruby on Rails noch nicht installiert haben, lesen Sie die folgende Anleitung.

  • So installieren Sie Ruby On Rails unter Linux

Erstellen Sie als Nächstes eine neue Rails-Anwendung. Wenn Sie MySQL mit der Rails-Anwendung verwenden möchten, führen Sie den folgenden Befehl aus, um eine neue Rails-Anwendung namens ostechnixapp zu erstellen :

$ rails new ostechnixapp -d mysql

Wenn Sie PostgreSQL mit der Rails-Anwendung verwenden möchten, erstellen Sie die neue Rails-Anwendung namens ostechnixapp wie unten:

$ rails new ostechnixapp -d postgresql

Fügen Sie als Nächstes eine neue Umgebungsvariable mit Ihrem Datenbankbenutzerpasswort in der Profildatei Ihres Benutzers hinzu, zum Beispiel ~/.bashrc .

$ echo 'export OSTECHNIXAPP_DATABASE_PASSWORD="Database_User_Password"' >> ~/.bashrc

Ersetzen Sie im obigen Befehl "OSTECHNIXAPP" mit Ihrem Anwendungsnamen und "Database_User_Password" mit dem Passwort Ihres aktuellen Datenbankbenutzers.

Quelle ~/.bashrc Datei, um die Änderungen sofort zu aktualisieren:

$ source ~/.bashrc

Wechseln Sie nun in das Anwendungsverzeichnis:

$ cd ostechnixapp/

Bearbeiten Sie die Datenbankkonfigurationsdatei der Anwendung:

$ vi config/database.yml

Wenn Sie MySQL verwenden, fügen Sie den Datenbankbenutzernamen und die Umgebungsvariable hinzu, die wir zu ~/.bashrc hinzugefügt haben Datei im vorherigen Schritt unter default Sektion. Folgendes habe ich zur MySQL-Konfigurationsdatei hinzugefügt:

[...]
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
[...]

Auch hier müssen Sie OSTECHNIXAPP_DATABASE_PASSWORD ersetzen mit Ihrer korrekten Umgebungsvariable.

Wenn Sie PostgreSQL verwenden, fügen Sie die Datenbankrolle und Umgebungsvariable unter default hinzu Abschnitt wie unten:

[...]
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'] %>
[...]

Nachdem Sie die Datenbankbenutzerrolle und die Umgebungsvariable hinzugefügt haben, drücken Sie ESC drücken und :wq eingeben um die Änderungen zu speichern und die Datei zu verlassen.

Erstellen Sie schließlich die Datenbank für Ihre Rails-Anwendung mit dem Befehl:

$ rake db:create

Dieser Befehl erstellt zwei Datenbanken, nämlich ostechnixapp_development und ostechnixapp_test .

Created database 'ostechnixapp_development'
Created database 'ostechnixapp_test'

Starten Sie nun die Rails-Anwendung auf dem eingebauten Webserver namens puma mit Befehl:

$ rails server -b 0.0.0.0

Öffnen Sie Ihren Webbrowser und greifen Sie auf die Rails-Anwendung zu, indem Sie zu http://ip-address:3000 navigieren URL. Sie werden mit der Rails-Standardtestseite begrüßt:

Wenn Sie das Datenbankpasswort nicht an andere Entwickler weitergeben möchten, sollten Sie wie ich bereits die Datenbankverbindung mit einer Umgebungsvariablen in einer Rails-Anwendung konfigurieren. Wenn Sie alleiniger Entwickler sind, können Sie einfach die standardmäßige Datenbankkonfigurationsdatei verwenden.


Linux
  1. Konfigurieren Sie WSO2 API Manager mit MySQL-Datenbank

  2. Ssh – Verwendung eines bereits eingerichteten SSH-Kanals?

  3. Konfigurieren Sie MSSQL-Datenbanksicherungen

  4. Ersetzung von Umgebungsvariablen in sed

  5. wie man die Umgebungsvariable an sudo su übergibt

So legen Sie die Umgebungsvariable in Windows fest

So legen Sie Umgebungsvariablen in MacOS fest

Erstellen Sie eine MySQL-Datenbank und -Tabelle mit PHP in XAMPP

So setzen Sie die Umgebungsvariable in Bash

Zugriff auf Umgebungsvariablen in Linux

Ein Array kann nicht als Umgebungsvariable verwendet werden