GNU/Linux >> Znalost Linux >  >> Linux

Jak používat PostgreSQL s aplikací Ruby On Rails

I když výchozí databáze SQLite3 funguje skvěle s Ruby on Rails , v některých případech bychom jej neměli používat. Pokud například k vaší aplikaci Rails současně přistupuje velký počet uživatelů, SQLite se nedoporučuje. Měli bychom vyzkoušet robustnější databáze jako MySQL nebo PostgreSQL, které poskytují škálovatelnost, souběžnost, centralizaci a kontrolu. Už jsme věděli, jak používat aplikaci MySQL s Rails . Dnes uvidíme, jak používat PostgreSQL s aplikací Ruby on Rails v Ubuntu Linux.

Předpoklady

Předpokládám, že jste již nainstalovali nejnovější Ruby on Rails na svůj systém Linux. Pokud ne, podívejte se do následujícího průvodce.

  • Jak nainstalovat Ruby On Rails v Linuxu

1. Nainstalujte PostgreSQL

Chcete-li nainstalovat PostgreSQL v Debianu, Ubuntu a jeho derivátech, spusťte:

$ sudo apt install postgresql postgresql-contrib libpq-dev

Tento příkaz nainstaluje PostgreSQL spolu se všemi požadovanými závislostmi. Zde je libpq-dev je knihovna PostgreSQL, která umožňuje klientským programům předávat dotazy na backend server PostgreSQL a přijímat výsledky těchto dotazů. Tato knihovna je vyžadována pro připojení k PostgreSQL, když nastavujete aplikaci Rails.

Ujistěte se, že služba postgresql je spuštěna a povolena při spuštění:

$ sudo systemctl start postgresql
$ sudo systemctl enable postgresql

Chcete-li zobrazit aktuální stav služby postgresql, spusťte:

$ systemctl status postgresql

1.1. Vytvořit novou databázovou roli

Potřebujeme vyhrazeného databázového uživatele (role), který bude vytvářet a konfigurovat databáze nebo naši aplikaci Rails.

Chcete-li vytvořit novou databázovou roli v PostgreSQL, spusťte z terminálu následující příkaz:

$ sudo -u postgres createuser -s ostechnix -P

Tady,

  • sudo -u postgres - umožňuje spustit příkaz z postgres účet.
  • createuser -s ostechnix - vytvořit novou roli s názvem ostechnix s oprávněními superuživatele.
  • -P - vás vyzve k zadání hesla pro novou roli.

2. Použijte PostgreSQL s aplikací Ruby on Rails v Linuxu

Chcete-li vytvořit novou aplikaci Rails s názvem ostechnixapp a použijte PostgreSQL jako svou výchozí databázi, spusťte:

$ rails new ostechnixapp -d postgresql

Tím se vytvoří aplikace Rails s názvem ostechnixapp v adresáři s názvem ostechnixapp a nainstalujte závislosti drahokamů, které jsou již zmíněny v Gemfile pomocí bundle install .

Po vytvoření ostechnixapp aplikace, přepněte do jejího adresáře:

$ cd ostechnixapp/

Upravte konfigurační soubor databáze aplikace:

$ vi config/database.yml

Pod default sekce, přidejte databázovou roli PosgreSQL a její heslo, které jsme vytvořili v předchozím kroku:

[...]
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: Password123#@!
[...]

Nahraďte uživatelské jméno a jeho heslo svým vlastním. Stiskněte ESC a zadejte :wq uložte a zavřete soubor.

Nyní vytvořte novou databázi pro vaši aplikaci Rails pomocí příkazu:

$ rake db:create

Tím vytvoříte dvě databáze s názvem vaší aplikace Rails. Pokud je například název aplikace ostechnixapp, vytvoří se ostechnixapp_development a ostechnixapp_test .

Created database 'ostechnixapp_development'
Created database 'ostechnixapp_test'

Můžete si to ověřit, zda jsou databáze úspěšně vytvořeny i z PosgreSQL.

Přihlaste se do PosgreSQL:

$ sudo -u postgres psql

Ve výzvě postgresql spusťte \l seznam dostupných databází:

postgres=# \l

Ukázkový výstup:

                                       List of databases
            Name           |   Owner   | Encoding | Collate |  Ctype  |   Access privileges   
 --------------------------+-----------+----------+---------+---------+-----------------------
  ostechnixapp_development | ostechnix | UTF8     | C.UTF-8 | C.UTF-8 | 
  ostechnixapp_test        | ostechnix | UTF8     | C.UTF-8 | C.UTF-8 | 
  postgres                 | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | 
  template0                | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
                           |           |          |         |         | postgres=CTc/postgres
  template1                | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
                           |           |          |         |         | postgres=CTc/postgres
 (5 rows)
 postgres=# 

Ukončete výzvu PostgreSQL zadáním \q .

postgres=# \q

Nyní spusťte webový server Rails pomocí příkazu:

$ rails server -b 0.0.0.0

Tím se spustí vaše aplikace Rails na výchozím portu 3000 . Zde jsme předali argument -b 0.0.0.0 za účelem přístupu k aplikaci Rails z libovolného počítače v místní síti.

Otevřete svůj webový prohlížeč a přejděte na adresu URL:http://ip-address:3000 .

Pokud chcete použít jiný port, předejte -p příznak spolu s číslem portu, jak je uvedeno níže:

$ rails server -b 0.0.0.0 -p 8080

Nyní je aplikace Rails přístupná z této adresy URL:http://ip-address:8080 .

3. Smazat aplikaci Rails

Pokud jste použili výchozí databázi, kterou je SQLite, můžete aplikaci Rails smazat jednoduchým smazáním jejího adresáře aplikace.

$ rm -fr ostechnixapp

Pokud jste použili PostgreSQL, musíte nejprve zrušit související databáze vaší aplikace pomocí příkazu:

$ rake db:drop

A poté smažte adresář aplikace:

$ rm -fr ostechnixapp

Závěr

Nyní víte, jak vytvořit aplikaci Rails s PostgreSQL jako databází. Jak jsem již zmínil, pokud je vaše aplikace aktivně používána velkým počtem uživatelů, musíte použít PostgreSQL nebo MySQL. To může být také užitečné, když budete chtít v budoucnu škálovat databázi, spravovat databázi z odstraněného systému.

Související čtení:

  • Konfigurace připojení k databázi pomocí proměnné prostředí v Rails

Linux
  1. Jak používám Vagrant s libvirt

  2. Vytvořte linuxovou desktopovou aplikaci s Ruby

  3. Jak používat export s Pythonem na Linuxu

  1. Jak nastavit prostředí pro aplikaci Ruby on Rails

  2. Jak nainstalovat Ruby on Rails (RoR) s PostgreSQL na Ubuntu 16.04

  3. Jak nainstalovat Gitlab s PostgreSQL a Nginx na Ubuntu 15.04

  1. Jak nainstalovat a používat Ruby on Rails s PostgreSQL na CentOS 7

  2. Jak nainstalovat Ruby on Rails s PostgreSQL na Rocky Linux 8.4

  3. Jak nainstalovat Ruby on Rails na Ubuntu 20.04