Ruby on Rails - Configurazione del database

Prima di iniziare con questo capitolo, assicurarsi che il server del database sia attivo e in esecuzione. Ruby on Rails consiglia di creare tre database: un database ciascuno per l'ambiente di sviluppo, test e produzione. Secondo la convenzione, i loro nomi dovrebbero essere:

  • library_development
  • library_production
  • library_test

È necessario inizializzarli tutti e tre e creare un utente e una password con privilegi di lettura e scrittura completi. Stiamo usando ilroot ID utente per la nostra applicazione.

Configurazione del database per MySQL

In MySQL, stiamo usando il rootID utente per la nostra applicazione. La sessione della console MySQL in cui si esegue questa operazione assomiglia a:

mysql> create database library_development;
Query OK, 1 row affected (0.01 sec)

mysql> grant all privileges on library_development.*
to 'root'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Puoi fare la stessa cosa per altri due database library_production e library_test.

Configurazione di database.yml

A questo punto, devi comunicare a Rails il nome utente e la password per i database. Puoi farlo nel filedatabase.yml, disponibile in library\configsottodirectory dell'applicazione Rails creata. Questo file ha sezioni di configurazione live per i database MySQL. In ciascuna delle sezioni che utilizzi, devi modificare le righe del nome utente e della password per riflettere le autorizzazioni sui database che hai creato.

Quando finisci, dovrebbe assomigliare a:

development:
   adapter: mysql
   database: library_development
   username: root
   password: [password]
   host: localhost
	
test:
   adapter: mysql
   database: library_test
   username: root
   password: [password]
   host: localhost
   
production:
   adapter: mysql
   database: library_production
   username: root
   password: [password]
   host: localhost

Configurazione del database per PostgreSQL

Per impostazione predefinita, PostgreSQL non fornisce alcun utente. Dobbiamo creare nuovi utenti. Utilizzare il seguente comando per creare un utente con il nomerubyuser.

tp> sudo -u postgres createuser rubyuser -s

Se desideri creare una password per il nuovo utente, utilizza il seguente comando.

tp> sudo -u postgres psql

postgres=# \password rubyuser

Usa il seguente comando per creare un database library_development.

postgres=# CREATE DATABASE library_development OWNER rubyuser; 

CREATE DATABASE

Usa il seguente comando per creare un database library_production.

postgres=# CREATE DATABASE library_production OWNER rubyuser; 

CREATE DATABASE

Usa il seguente comando per creare un database library_test.

postgres=# CREATE DATABASE library_test OWNER rubyuser; 

CREATE DATABASE

stampa Ctrl+D per terminare PosgreSQL.

Configurazione di database.yml

A questo punto, devi far conoscere a Rails il nome utente e la password per i database. Puoi farlo nel filedatabase.yml, disponibile in library\configsottodirectory dell'applicazione Rails creata. Questo file ha sezioni di configurazione live per i database PostgreSQL. In ciascuna delle sezioni, è necessario modificare le righe del nome utente e della password per riflettere le autorizzazioni sui database che hai creato.

Al termine, dovrebbe apparire come segue:

default: &default
   adapter: postgresql
   encoding: unicode
  
development:
   adapter: postgresql
   encoding: unicode
   database: library_development
   username: rubyuser
   password: <Password for rubyuser>

test:
   adapter: postgresql
   encoding: unicode
   database: library_test
   username: rubyuser
   password: <Password for rubyuser>
 
production:
   adapter: postgresql
   encoding: unicode
   database: library_production
   username: rubyuser
   password: <Password for rubyuser>

Cosa c'è dopo?

I prossimi due capitoli spiegano come modellare le tabelle del database e come gestirle utilizzando Rails Migrations.