Tra tutti i motori di database disponibili, PostgreSQL è uno dei più popolari. È un noto sistema di database open-source conosciuto per la sua affidabilità, le sue solide funzionalità e le sue prestazioni. Poiché PostgreSQL è una scelta popolare, è supportato da quasi tutti i principali framework web. Similmente ai suoi concorrenti MySQL e SQLite, anche PostgreSQL ha i suoi punti di forza e di debolezza.
Ruby on Rails è un popolare framework web scritto in Ruby. È un framework indipendente dal database (database-agnostic), il che significa che può funzionare con un'ampia varietà di database. Per impostazione predefinita, Rails presuppone l'uso di SQL per le funzionalità del database. Tuttavia, supporta anche l'integrazione con PostgreSQL.
Questo tutorial ti guiderà attraverso il processo di configurazione di PostgreSQL per la tua applicazione Ruby on Rails.
Ruby on Rails e PostgreSQL
Sia PostgreSQL che Ruby on Rails sono disponibili su qualsiasi distribuzione UNIX/Linux. Dovrebbero essere disponibili nei server dei pacchetti predefiniti.
Un metodo alternativo consiste nell'utilizzare RVM (Ruby Version Manager). Si tratta di uno strumento dedicato alla gestione delle installazioni di Ruby on Rails. Il vantaggio di questo approccio è che RVM creerà un'installazione locale di Ruby on Rails. Può anche gestire più versioni di Ruby e passare da una all'altra senza problemi. Ecco un tutorial che descrive in dettaglio i passaggi per Installare Ruby on Rails con RVM su Ubuntu.
Per quanto riguarda PostgreSQL, dai un'occhiata a questa guida rapida su installare e configurare PostgreSQL su Ubuntu.
-
Installazione di RVM
Il processo di installazione di RVM è piuttosto semplice, grazie allo script di installazione offerto da RVM. Lo script è progettato per rilevare automaticamente il sistema Linux, quindi scaricare e installare tutti i pacchetti necessari. Abbiamo bisogno delle chiavi GPG di RVM per verificare i pacchetti. Ciò garantisce che i pacchetti ricevuti non siano contraffatti. Per prima cosa, aggiungi le chiavi GPG di RVM:
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

Quindi, esegui lo script di installazione di RVM:
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

Infine, verifica l'installazione:
|
1 |
type rvm | head -n 1 |
-
Installazione di Rails
Ora possiamo usare RVM per installare componenti aggiuntivi. Installa il framework Rails usando RVM:
|
1 |
gem install rails |
-
Installazione di PostgreSQL
Il passaggio successivo richiede che PostgreSQL sia preinstallato sul sistema. Per impostazione predefinita, il modo più semplice per installare PostgreSQL è utilizzare il gestore di pacchetti predefinito. È disponibile per tutte le principali distribuzioni Linux. Dai un'occhiata alla pagina di download di PostgreSQL per tutti i metodi di installazione disponibili. Su Ubuntu, i seguenti comandi configureranno il repository di PostgreSQL e lo installeranno immediatamente:
|
1 |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |

|
1 |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - |

|
1 |
sudo apt update && sudo apt install postgresql -y |

Per abilitare il supporto a PostgreSQL, dobbiamo installare la pg gem. Consente di interfacciarsi con PostgreSQL dal codice Ruby:
|
1 |
gem install pg |
-
Configurazione di PostgreSQL
Dopo l'installazione, configureremo gli strumenti che dovremo utilizzare per i nostri progetti. Per prima cosa, passa all'utente PostgreSQL:
|
1 |
su - postgres |
Accedi alla shell di PostgreSQL:
|
1 |
psql |

Nel contesto di PostgreSQL, ora creeremo un nuovo ruolo (classicamente noto come utente). PostgreSQL ha il suo formato di ruoli e permessi. Non dimenticare di utilizzare un nome utente appropriato e una password sicura:
|
1 |
create role <username> with createdb login password 'password123'; |
Creazione di un'app Rails
Dì a Rails di creare una nuova app Rails configurata per utilizzare PostgreSQL per il database:
|
1 |
rails new <app_name> --database=postgresql |

Questo creerà una nuova directory con il nome utente dell'app. Rails generalmente si aspetta che il nome utente del database e il nome dell'app siano gli stessi. Il passo successivo consiste nel configurare la configurazione del database di Rails. Il file di configurazione si trova nella seguente posizione:
|
1 |
RAILS_ROOT/config/database.yml |
Il file database.yml contiene i dati che descrivono il database appropriato per l'ambiente Rails corrente. Come suggerisce il nome del file, utilizza YAML. YAML è uno standard di serializzazione dei dati a misura d'uomo per tutti i linguaggi di programmazione.
Per impostazione predefinita, Rails si aspetta database diversi per ambienti diversi, ad esempio, development, test, e production. È utile in varie situazioni, ad esempio, Rails svuoterà e ricostruirà il test database ogni volta che viene eseguito un test Rails.
Ecco un esempio di database.yml che contiene i database di development e test :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
development: adapter: postgresql encoding: unicode database: dummyapp_development pool: 5 username: dummyapp password: password123 test: adapter: postgresql encoding: unicode database: myapp_test pool: 5 username: dummyapp password: password123 |

È ora il momento di rendere effettive le modifiche. Il seguente comando preparerà i database necessari descritti in database.yml. Ogni database avrà i propri utenti e le tabelle schema_migrations . La tabella è necessaria per la migrazione dei dati e dello schema:
|
1 |
rake db:setup |
Questo passaggio fallirà se il file di configurazione di PostgreSQL pg_hba.conf contiene configurazioni non corrette. Il file si trova nella seguente posizione:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
La riga seguente è l'obiettivo. Invece di peer, il metodo di autenticazione dovrebbe essere md5:
|
1 |
local all all peer |
Modifica la riga:
|
1 |
local all all md5 |

Per rendere effettive le modifiche, devi riavviare il servizio PostgreSQL:
|
1 |
sudo systemctl restart postgresql |
Quindi, esegui nuovamente la configurazione del database:
|
1 |
rake db:setup |
Esecuzione di Rails
L'esecuzione del server Rails richiede il seguente componente aggiuntivo. Nota che per questo, è necessario Node.js installato (con yarn):
|
1 |
rails webpacker:install |

L'app Rails dovrebbe ora essere pronta per l'avvio. Avvia il server Rails:
|
1 |
rails server |

Il server dovrebbe essere accessibile dal seguente URL. Atterrerà sulla pagina di destinazione di Rails:
|
1 |
http://localhost:3000 |
Per rendere la pagina di destinazione più interessante, crea uno scaffold:
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
Infine, avvia il server e naviga nuovamente all'URL. Ora possiamo gestire i post (creazione, modifica ed eliminazione dei post).
Considerazioni finali
Questa è una configurazione di base di Ruby on Rails con PostgreSQL. C'è una guida ufficiale introduttiva che ti aiuterà a utilizzare ulteriormente Rails. L'app di esempio che abbiamo creato utilizza PostgreSQL. In questo modo, puoi creare qualsiasi app che utilizzi PostgreSQL per le sue funzionalità.
Buona programmazione!


Commenti
Ancora nessun commento. Scrivi il primo.