Van alle beschikbare database-engines is PostgreSQL een van de meest populaire. Het is een bekend open-source databasesysteem dat bekend staat om zijn betrouwbaarheid, robuuste functies en prestaties. Omdat PostgreSQL een populaire keuze is, wordt het door bijna alle grote webframeworks ondersteund. Net als zijn concurrenten MySQL en SQLite heeft PostgreSQL ook zijn sterke en zwakke punten.
Ruby on Rails is een populair webframework geschreven in Ruby. Het is een database-agnostisch framework, wat betekent dat het met een grote verscheidenheid aan databases kan werken. Standaard gaat Rails uit van SQL voor databasefunctionaliteiten. Het ondersteunt echter ook PostgreSQL-integratie.
Deze handleiding zal je door het proces leiden van het configureren van PostgreSQL voor je Ruby on Rails-applicatie.
Ruby on Rails and PostgreSQL
Zowel PostgreSQL als Ruby on Rails zijn beschikbaar op elke UNIX/Linux-distributie. Ze zouden beschikbaar moeten zijn via de standaard pakketservers.
Een alternatieve methode is het gebruik van RVM (Ruby Version Manager). Het is een speciale tool om Ruby on Rails-installaties te beheren. Het voordeel van deze aanpak is dat RVM een lokale installatie van Ruby on Rails zal maken. Het kan ook meerdere versies van Ruby beheren en er naadloos tussen schakelen. Hier is een handleiding die de stappen beschrijft van Ruby on Rails installeren met RVM op Ubuntu.
Wat betreft PostgreSQL, bekijk deze snelle gids over het installeren en configureren van PostgreSQL op Ubuntu.
-
RVM installeren
Het installatieproces van RVM is vrij eenvoudig, dankzij het installatiescript dat RVM aanbiedt. Het script is ontworpen om het Linux-systeem automatisch te detecteren en vervolgens alle benodigde pakketten te downloaden en te installeren. We hebben de RVM GPG-sleutels nodig om pakketten te verifiëren. Dit zorgt ervoor dat de ontvangen pakketten niet zijn vervalst. Voeg eerst de RVM GPG-sleutels toe:
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

Voer vervolgens het RVM-installatiescript uit:
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

Controleer ten slotte de installatie:
|
1 |
type rvm | head -n 1 |
-
Rails installeren
We kunnen nu RVM gebruiken om extra componenten te installeren. Installeer het Rails-framework met behulp van RVM:
|
1 |
gem install rails |
-
PostgreSQL installeren
Voor de volgende stap moet PostgreSQL vooraf op het systeem zijn geïnstalleerd. Standaard is de eenvoudigste manier om PostgreSQL te installeren het gebruik van de standaard pakketbeheerder. Het is beschikbaar voor alle grote Linux-distributies. Bekijk de PostgreSQL-downloadpagina voor alle beschikbare installatiemethoden. Op Ubuntu zullen de volgende commando's de PostgreSQL-repository configureren en deze meteen installeren:
|
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 |

To enable PostgreSQL support, we need to install the pg gem. It enables interfacing with PostgreSQL from Ruby code:
|
1 |
gem install pg |
-
PostgreSQL configureren
Na de installatie configureren we de tools die we voor onze projecten moeten gebruiken. Schakel eerst over naar de PostgreSQL-gebruiker:
|
1 |
su - postgres |
Open de PostgreSQL-shell:
|
1 |
psql |

In de context van PostgreSQL maken we nu een nieuwe role aan (klassiek bekend als gebruiker). PostgreSQL heeft zijn eigen indeling van rollen en machtigingen. Vergeet niet een geschikte gebruikersnaam en een sterk wachtwoord te gebruiken:
|
1 |
create role <username> with createdb login password 'password123'; |
Een Rails-app maken
Vertel Rails om een nieuwe Rails-app te maken die is geconfigureerd om PostgreSQL te gebruiken voor de database:
|
1 |
rails new <app_name> --database=postgresql |

Dit zal een nieuwe map maken met de gebruikersnaam van de app. Rails verwacht over het algemeen dat de gebruikersnaam van de database en de app-naam hetzelfde zijn. De volgende stap is het configureren van de Rails-databaseconfiguratie. Het configuratiebestand bevindt zich op de volgende locatie:
|
1 |
RAILS_ROOT/config/database.yml |
Het bestand database.yml bevat de gegevens die de juiste database voor de huidige Rails-omgeving beschrijven. Zoals de bestandsnaam al doet vermoeden, maakt het gebruik van YAML. YAML is een mensvriendelijke standaard voor gegevensserialisatie voor alle programmeertalen.
Standaard verwacht Rails verschillende databases voor verschillende omgevingen, bijvoorbeeld development, test, en production. Dit is handig in verschillende situaties, Rails zal bijvoorbeeld de test database leegmaken en opnieuw opbouwen telkens wanneer een Rails-test wordt uitgevoerd.
Hier is een voorbeeld database.yml dat de development en test databases bevat:
|
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 |

Het is nu tijd om de wijzigingen door te voeren. Het volgende commando zal de benodigde databases voorbereiden die worden beschreven in database.yml. Elke database zal zijn eigen gebruikers hebben en schema_migrations tabellen hebben. De tabel is noodzakelijk voor data- en schemamigratie:
|
1 |
rake db:setup |
Deze stap zal mislukken als het PostgreSQL-configuratiebestand pg_hba.conf onjuiste configuraties bevat. Het bestand bevindt zich op de volgende locatie:
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
De volgende regel is het doel. In plaats van peer, moet de authenticatiemethode md5:
|
1 |
local all all peer |
Wijzig de regel:
|
1 |
local all all md5 |

Om de wijzigingen door te voeren, moet u de PostgreSQL-service herstarten:
|
1 |
sudo systemctl restart postgresql |
Voer vervolgens de database-setup opnieuw uit:
|
1 |
rake db:setup |
Rails uitvoeren
Het uitvoeren van de Rails-server vereist de volgende aanvullende component. Let op dat u hiervoor Node.js geïnstalleerd moet hebben (met yarn):
|
1 |
rails webpacker:install |

De Rails-app zou nu klaar moeten zijn om te starten. Start de Rails-server:
|
1 |
rails server |

De server zou toegankelijk moeten zijn via de volgende URL. Deze zal uitkomen op de landingspagina van Rails:
|
1 |
http://localhost:3000 |
Om de landingspagina spannender te maken, maakt u een scaffold:
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
Start ten slotte de server en navigeer opnieuw naar de URL. We kunnen nu berichten beheren (berichten maken, bewerken en verwijderen).
Tot slot
Dit is een basisconfiguratie van Ruby on Rails met PostgreSQL. Er is een officiële handleiding om aan de slag te gaan die u zal helpen Rails verder te gebruiken. De voorbeeld-app die we hebben gemaakt, maakt gebruik van PostgreSQL. Op deze manier kunt u elke app maken die PostgreSQL gebruikt voor zijn functionaliteiten.
Veel computerplezier!


Reacties
Nog geen reacties. Wees de eerste.