Tato příručka vysvětluje, proč k připojení k databázi potřebujete použít proměnnou prostředí a jak nakonfigurovat připojení k databázi pomocí proměnné prostředí v aplikaci Rails v Linuxu.
Proč používat proměnnou prostředí ke konfiguraci databáze?
Každá aplikace Rails bude komunikovat se svou příslušnou databází. Existují dva způsoby, jak se připojit k databázi v aplikaci Rails. K databázi se můžete připojit prostřednictvím konfiguračního souboru databáze s názvem config/database.yml nebo pomocí proměnné prostředí s názvem ENV['DATABASE_URL'] . Již jsme vám ukázali, jak vytvořit aplikaci Rails s databází MySQL nebo Databáze PostgreSQL . V těchto dvou průvodcích jsme nakonfigurovali připojení k databázi pomocí config/database.yml soubor.
Pokud jste jediná osoba, která pracuje na projektu Rails, je v pořádku uložit přihlašovací údaje k databázi v config/database.yml soubor. Pokud je však projekt hostován ve veřejném úložišti Git a pracuje na něm mnoho vývojářů, nedoporučuje se ukládat citlivé informace, jako jsou hesla, do config/database.yml soubor. Také podrobnosti o databázi každého vývojáře se mohou lišit, tj. uživatelské jméno a heslo. Pokaždé, když vložíme kód, dojde ke konfliktu v souboru. To je důvod, proč potřebujeme databázové pověření uložit do proměnné prostředí, spíše než je zapisovat přímo do konfiguračního souboru databáze.
Konfigurace databázového připojení pomocí proměnné prostředí v aplikaci Rails
Předpokládám, že na svém Linuxovém stroji máte nejnovější Ruby on Rails. Pokud jste Ruby on Rails ještě nenainstalovali, podívejte se na následující průvodce.
- Jak nainstalovat Ruby On Rails v Linuxu
Dále vytvořte novou aplikaci Rails. Pokud chcete používat MySQL s aplikací Rails, spusťte následující příkaz a vytvořte novou aplikaci Rails, konkrétně ostechnixapp :
$ rails new ostechnixapp -d mysql
Pokud chcete používat PostgreSQL s aplikací Rails, vytvořte novou aplikaci Rails s názvem ostechnixapp jako níže:
$ rails new ostechnixapp -d postgresql
Dále přidejte novou proměnnou prostředí s heslem uživatele databáze do souboru profilu uživatele, například ~/.bashrc .
$ echo 'export OSTECHNIXAPP_DATABASE_PASSWORD="Database_User_Password"' >> ~/.bashrc
Ve výše uvedeném příkazu nahraďte "OSTECHNIXAPP" s názvem vaší aplikace a "Database_User_Password" s vaším skutečným heslem uživatele databáze.
Zdrojový kód ~/.bashrc soubor pro okamžitou aktualizaci změn:
$ source ~/.bashrc
Nyní se přepněte do adresáře aplikace:
$ cd ostechnixapp/
Upravte konfigurační soubor databáze aplikace:
$ vi config/database.yml
Pokud používáte MySQL, přidejte uživatelské jméno databáze a proměnnou prostředí, kterou jsme přidali do ~/.bashrc soubor v předchozím kroku pod default sekce. Zde je to, co jsem přidal do konfiguračního souboru 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
[...]
Opět musíte nahradit OSTECHNIXAPP_DATABASE_PASSWORD se správnou proměnnou prostředí.
Pokud používáte PostgreSQL, přidejte databázovou roli a proměnnou prostředí pod default sekce jako níže:
[...]
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'] %>
[...]
Po přidání uživatelské role databáze a proměnné prostředí stiskněte ESC a zadejte :wq pro uložení změn a ukončení souboru.
Nakonec vytvořte databázi pro vaši aplikaci Rails pomocí příkazu:
$ rake db:create
Tento příkaz vytvoří dvě databáze a to ostechnixapp_development a ostechnixapp_test .
Created database 'ostechnixapp_development' Created database 'ostechnixapp_test'
Nyní spusťte aplikaci Rails na vestavěném webovém serveru s názvem puma pomocí příkazu:
$ rails server -b 0.0.0.0
Otevřete webový prohlížeč a přejděte do aplikace Rails na http://ip-address:3000 URL. Uvítá vás výchozí testovací stránka Rails:
Stejně jako já, pokud nechcete prozradit heslo databáze dalším vývojářům, měli byste nakonfigurovat připojení k databázi pomocí proměnné prostředí v aplikaci Rails. Pokud jste jediným vývojářem, můžete jednoduše použít výchozí konfigurační soubor databáze.