GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare PostgreSQL con l'applicazione Ruby On Rails

Anche se il database predefinito SQLite3 funziona benissimo con Ruby on Rails , non dovremmo usarlo in alcuni casi. Ad esempio, se alla tua applicazione Rails accedono contemporaneamente un numero elevato di utenti, SQLite non è raccomandato. Dovremmo provare database più robusti come MySQL o PostgreSQL, che forniscono scalabilità, concorrenza, centralizzazione e controllo. Sapevamo già come usare MySQL con l'applicazione Rails . Oggi vedremo come utilizzare PostgreSQL con l'applicazione Ruby on Rails in Ubuntu Linux.

Prerequisiti

Presumo che tu abbia già installato l'ultimo Ruby on Rails sul tuo sistema Linux. In caso contrario, fare riferimento alla seguente guida.

  • Come installare Ruby On Rails in Linux

1. Installa PostgreSQL

Per installare PostgreSQL in Debian, Ubuntu e i suoi derivati, esegui:

$ sudo apt install postgresql postgresql-contrib libpq-dev

Questo comando installerà PostgreSQL insieme a tutte le dipendenze richieste. Qui, il libpq-dev è una libreria PostgreSQL che consente ai programmi client di passare query al server di backend PostgreSQL e di ricevere i risultati di queste query. Questa libreria è necessaria per connettersi a PostgreSQL quando configuri un'applicazione Rails.

Assicurati che il servizio postgresql sia avviato e abilitato all'avvio:

$ sudo systemctl start postgresql
$ sudo systemctl enable postgresql

Per visualizzare lo stato corrente del servizio postgresql, eseguire:

$ systemctl status postgresql

1.1. Crea un nuovo ruolo nel database

Abbiamo bisogno di un utente di database dedicato (ruolo) per creare e configurare database o la nostra applicazione Rails.

Per creare un nuovo ruolo del database in PostgreSQL, esegui il seguente comando dal tuo Terminale:

$ sudo -u postgres createuser -s ostechnix -P

Ecco,

  • sudo -u postgres - ti permette di eseguire il comando da postgres conto.
  • createuser -s ostechnix - crea un nuovo ruolo chiamato ostechnix con privilegi di super utente.
  • -P - ti chiede di inserire la password per il nuovo ruolo.

2. Usa PostgreSQL con l'applicazione Ruby on Rails in Linux

Per creare una nuova applicazione Rails chiamata ostechnixapp e usa PostgreSQL come database predefinito, esegui:

$ rails new ostechnixapp -d postgresql

Questo creerà un'applicazione Rails chiamata ostechnixapp in una directory denominata ostechnixapp e installa le dipendenze gem già menzionate in Gemfile utilizzando bundle install .

Dopo aver creato la ostechnixapp applicazione, passa alla sua directory:

$ cd ostechnixapp/

Modifica il file di configurazione del database dell'applicazione:

$ vi config/database.yml

Sotto il default sezione, aggiungi il ruolo del database PosgreSQL e la relativa password che abbiamo creato nel passaggio precedente:

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

Sostituisci il nome utente e la relativa password con la tua. Premi ESC e digita :wq per salvare e chiudere il file.

Ora crea il nuovo database per la tua applicazione Rails usando il comando:

$ rake db:create

Questo creerà due database con il nome della tua applicazione Rails. Ad esempio, se il nome dell'applicazione è ostechnixapp, verrà creato ostechnixapp_development e ostechnixapp_test .

Created database 'ostechnixapp_development'
Created database 'ostechnixapp_test'

Puoi verificarlo se i database sono stati creati correttamente anche da PosgreSQL.

Accedi a PosgreSQL:

$ sudo -u postgres psql

Nel prompt di postgresql, esegui \l per elencare i database disponibili:

postgres=# \l

Risultato di esempio:

                                       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=# 

Esci dal prompt di PostgreSQL immettendo \q .

postgres=# \q

Ora avvia il tuo server web Rails usando il comando:

$ rails server -b 0.0.0.0

Questo avvierà la tua applicazione Rails sulla porta predefinita 3000 . Qui, abbiamo passato l'argomento -b 0.0.0.0 per accedere all'applicazione Rails da qualsiasi macchina sulla rete locale.

Apri il tuo browser web e accedi alla tua pagina di test Rails navigando all'URL:http://ip-address:3000 .

Se desideri utilizzare una porta diversa, passa -p flag insieme al numero di porta come di seguito:

$ rails server -b 0.0.0.0 -p 8080

Ora è possibile accedere all'applicazione Rails da questo URL:http://ip-address:8080 .

3. Elimina l'applicazione Rails

Se hai utilizzato il database predefinito che è SQLite, puoi eliminare l'applicazione Rails semplicemente eliminando la sua directory dell'app.

$ rm -fr ostechnixapp

Se hai utilizzato PostgreSQL, per prima cosa devi eliminare i relativi database della tua applicazione usando il comando:

$ rake db:drop

E quindi eliminare la directory dell'applicazione:

$ rm -fr ostechnixapp

Conclusione

Ora sai come creare un'applicazione Rails con PostgreSQL come database. Come ho già detto, se la tua applicazione viene utilizzata attivamente da un gran numero di utenti, devi utilizzare PostgreSQL o MySQL. Questo può essere utile anche quando vuoi ridimensionare il database in futuro, gestire il tuo database da un sistema di rimozione.

Lettura correlata:

  • Configura la connessione al database utilizzando la variabile di ambiente in Rails

Linux
  1. Come uso Vagrant con libvirt

  2. Crea un'applicazione desktop Linux con Ruby

  3. Come configurare un ambiente per l'applicazione Ruby on Rails

  4. Come installare Ruby on Rails (RoR) con PostgreSQL su Ubuntu 16.04

  5. Come utilizzare l'esportazione con Python su Linux

Come installare Ruby on Rails su Debian 9

Come installare Ruby on Rails su Debian 10

Come installare Ruby on Rails su CentOS 7

Come installare Ruby on Rails su CentOS 8

Come installare Ruby on Rails su Ubuntu 16.04

Come installare Ruby on Rails su Ubuntu 20.04 con RVM