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.