Hoe PostgreSQL upgraden en migreren in ServBay
Voor webontwikkelaars is het beheren van databaseversies in de lokale ontwikkelomgeving essentieel. Het upgraden of wisselen van PostgreSQL-versies is vaak nodig om te profiteren van nieuwe functies, beveiligingsupdates of om aan specifieke projectvereisten voor databasecompatibiliteit te voldoen. ServBay is een krachtig lokaal webontwikkelplatform waarmee je eenvoudig meerdere PostgreSQL-versies kunt installeren en beheren, en makkelijk tussen deze versies kunt schakelen.
In dit artikel leggen we stap voor stap uit hoe je veilig en efficiënt het standaard PostgreSQL-versienummer in de ServBay-omgeving kunt aanpassen. We demonstreren dit aan de hand van een migratie van PostgreSQL 10 naar PostgreSQL 16, maar deze stappen gelden voor elke wisseling tussen ondersteunde PostgreSQL-versies in ServBay.
Overzicht
De kernstappen bij het wisselen van PostgreSQL-versies zijn: een back-up maken van de huidige database, de gewenste nieuwe versie installeren, de standaardversie instellen in ServBay, en vervolgens de back-up naar de nieuwe versie terugzetten. Door deze stappen zorgvuldig te volgen, minimaliseer je het risico op dataverlies of compatibiliteitsproblemen.
Toepassingsscenario’s
- Upgraden naar de nieuwste versie: Profiteer van betere prestaties, nieuwe functionaliteit en beveiligingsupdates.
- Compatibiliteit testen: Test lokaal of je applicatie compatibel is met een nieuwe PostgreSQL-versie voordat je de productieomgeving upgradet.
- Voldoen aan projectvereisten: Sommige projecten vragen om een specifieke versie van PostgreSQL.
- Downgraden: Bij compatibiliteitsproblemen kun je eenvoudig teruggaan naar een oudere versie.
Randvoorwaarden
Voordat je start, zorg ervoor dat je aan de volgende voorwaarden voldoet:
- ServBay is geïnstalleerd en draait.
- Je hebt basiskennis van het ServBay-pakketbeheer en het instellingenpaneel.
- Je hebt beheerdersrechten in ServBay.
- Je kunt met de opdrachtregel werken.
- Je hebt voldoende schijfruimte voor een volledige databaseback-up.
Stappenplan
Dit zijn de gedetailleerde stappen om het standaard PostgreSQL-versienummer in ServBay te wisselen:
1. Maak een back-up van de oude databaseversie
Voordat je van versie wisselt, wordt het ten zeerste aangeraden een volledige back-up te maken van je bestaande PostgreSQL-databases. Dit is de belangrijkste stap om dataverlies te voorkomen. Met het commando pg_dumpall
maak je makkelijk een back-up van alle databases op de PostgreSQL-server (inclusief systeem- en gebruikersdatabases).
Open je terminal en voer het volgende commando uit:
bash
pg_dumpall -U postgres -f postgresql_backup.sql
1
-U postgres
: Verbindt met de standaard PostgreSQL-beheerderpostgres
.-f postgresql_backup.sql
: Slaat de back-up op als het bestandpostgresql_backup.sql
in de huidige map.
Tijdens de uitvoering van dit commando wordt je gevraagd om het wachtwoord van de postgres
-gebruiker. Voer het wachtwoord in om het back-upproces te starten. Na afloop vind je het bestand postgresql_backup.sql
in je huidige map. Bewaar dit bestand zorgvuldig.
2. Installeer de nieuwe versie via ServBay
Open in de grafische interface (GUI) van ServBay het Pakketpaneel (in eerdere versies ook wel “Servicepaneel” genoemd).
Kies in de navigatiebalk links Database en selecteer vervolgens PostgreSQL. Je ziet nu een lijst met alle door ServBay ondersteunde PostgreSQL-versies. Klik op de "Installeer"-knop naast de gewenste nieuwe versie, bijvoorbeeld PostgreSQL 16.
ServBay downloadt en installeert nu automatisch de geselecteerde PostgreSQL-versie. Wacht tot de installatie voltooid is.
3. Deactiveer de oude PostgreSQL-versie in ServBay
Om poortconflicten of het onopzettelijk aanspreken van de oude versie te voorkomen, schakel je de oude versie van PostgreSQL uit nadat je de nieuwe hebt geïnstalleerd.
In het Pakketpaneel van ServBay ga je naar Database > PostgreSQL. Zoek de draaiende oude versie (bijvoorbeeld PostgreSQL 10) en zet de schakelaar naast de versie uit (meestal groen voor actief, na uitschakelen wordt deze grijs).
Controleer of de status van de oude PostgreSQL-versie nu ‘uitgeschakeld’ is.
4. Activeer de nieuwe PostgreSQL-versie in ServBay
Na het uitschakelen van de oude versie, activeer je de net geïnstalleerde nieuwe PostgreSQL-versie.
Zoek in het Pakketpaneel > Database > PostgreSQL de nieuwe versie (zoals PostgreSQL 16) en zet de schakelaar aan (van grijs—uitgeschakeld—naar groen—ingeschakeld).
Wacht even tot de status van de nieuwe versie als ‘actief’ (groen) aangegeven staat.
5. Wijzig de standaard PostgreSQL-versie in de instellingen van ServBay
ServBay laat je één PostgreSQL-versie instellen als ‘standaard’. Wanneer je in de terminal bijvoorbeeld psql
uitvoert, bepaalt deze instelling welke uitvoering van PostgreSQL wordt gebruikt.
Open het Instellingenpaneel van ServBay. Zoek bij de instellingen naar de opties rondom Database of PostgreSQL. Hier kies je welke geïnstalleerde PostgreSQL-versie ServBay als standaard moet instellen.
Selecteer de pas geactiveerde versie (bijvoorbeeld PostgreSQL 16) en klik op de Apply-knop onderaan om de wijziging toe te passen.
6. Controleer of de wijziging is geslaagd in het pakketpaneel
Ga terug naar het Pakketpaneel > Database > PostgreSQL. Je zou moeten zien dat de nieuwe versie (bijvoorbeeld PostgreSQL 16) als ‘Standaard’ is gemarkeerd of op een andere manier wordt aangeduid.
7. Controleer de standaardversie in de terminal
Hoewel de standaardversie zichtbaar is in de ServBay-GUI, is het verstandig om in de terminal te controleren of het systeem (en vooral de PATH-omgeving) daadwerkelijk de nieuwe PostgreSQL-versie aanspreekt.
Open een nieuw terminalvenster (of voer source ~/.zshrc
of source ~/.bash_profile
uit afhankelijk van je shell, om de omgeving te vernieuwen) en typ:
bash
psql --version
1
De uitvoer zou het versienummer van de nieuwe instantie moeten tonen (zoals psql (PostgreSQL) 16.x.x
).
Zie je toch de oude versie, sluit dan ServBay helemaal af, start het opnieuw, of werk handmatig je terminal-instellingen bij.
8. Zet de database terug
Importeer nu je eerder gemaakte back-up in de nieuwe PostgreSQL-versie. Zorg dat de nieuwe PostgreSQL-service actief is.
Ga in de terminal naar de map waar je postgresql_backup.sql
hebt opgeslagen en voer uit:
bash
psql -U postgres -f postgresql_backup.sql
1
-U postgres
: Verbindt met depostgres
-gebruiker van de nieuwe versie.-f postgresql_backup.sql
: Leest SQL-commando’s uit het back-upbestand en voert ze uit.
Voer het wachtwoord van de postgres
-gebruiker in om te starten. Dit proces kan even duren, afhankelijk van de grootte van je back-upbestand.
Let op: Als je back-upbestand commando’s bevat om databases aan te maken die in de nieuwe versie al bestaan, kunnen er fouten optreden. Verwijder in dat geval handmatig de conflicterende databases uit de nieuwe PostgreSQL-instantie (alleen als ze niet nodig zijn of als je zeker weet dat je ze uit de back-up kunt herstellen) alvorens het herstel opnieuw te proberen. Gebruik hiervoor bijvoorbeeld DROP DATABASE dbname;
.
9. Controleer of de database volledig is hersteld
Na het terugzetten van de data, log je in op de PostgreSQL-server van de nieuwe versie en controleer je of je databases en data correct zijn.
Voer in de terminal uit:
bash
psql -U postgres
1
Log in met het postgres
-wachtwoord. Je krijgt een prompt waarna je het overzicht van databases ziet met:
sql
\l
1
Vervolgens kun je verbinden met een specifieke database (zoals \c your_database_name
) en de inhoud inspecteren, bijvoorbeeld:
sql
\c servbay_demo_db -- Verbind met een voorbeeld-database
\d -- Toon alle tabellen
SELECT * FROM your_table_name LIMIT 10; -- Bekijk enkele rijen uit een tabel
1
2
3
2
3
Als alles er goed uitziet, kun je verder ontwikkelen in de nieuwe PostgreSQL-omgeving.
Let op
- Datacompatibiliteit: PostgreSQL is doorgaans goed compatibel tussen versies, maar bij het overslaan van meerdere hoofdversies kunnen er toch problemen ontstaan met data-indeling of functies. Bekijk de officiële documentatie over versie-upgrades waarop je overstapt.
- Applicatiecompatibiliteit: Je applicatiecode, database-driver of ORM kan een update nodig hebben om volledig met de nieuwe versie samen te werken. Test je applicatie grondig na de switch!
- Wachtwoordbeheer: Je hebt op meerdere momenten het wachtwoord van de PostgreSQL
postgres
-gebruiker nodig. Zorg dat je dit kent. Ben je het vergeten, dan kun je met ServBay je ‘root’-wachtwoord voor de database resetten. - Back-upcontrole: Hoewel het artikel uitlegt hoe je de back-up terugzet, is het verstandig om in een testomgeving te verifiëren of je back-up daadwerkelijk bruikbaar is voordat je live overstapt.
Veelgestelde vragen (FAQ)
- Vraag: Wat moet ik doen als er tijdens het herstellen wordt gemeld dat de database al bestaat?
- Antwoord: Als je back-up
CREATE DATABASE
-regels bevat voor databases die in de nieuwe versie al bestaan, mislukt het herstel. Verwijder dan handmatig de conflicterende databases in de nieuwe PostgreSQL-instantie (psql -U postgres
), gebruik het commandoDROP DATABASE dbname;
en probeer daarna de import opnieuw. Wees voorzichtig: verwijder alleen databases waarvan je een back-up hebt!
- Antwoord: Als je back-up
- Vraag: Ik heb meerdere PostgreSQL-versies geïnstalleerd in ServBay, maar
psql --version
toont niet mijn ingestelde standaardversie?- Antwoord: Dit komt meestal doordat je omgevingsvariabelen nog niet zijn bijgewerkt. Sluit je terminal en open deze opnieuw, of voer
source ~/.zshrc
(of de configuratie van jouw shell) uit. Blijft het probleem, sluit ServBay helemaal af en start het opnieuw.
- Antwoord: Dit komt meestal doordat je omgevingsvariabelen nog niet zijn bijgewerkt. Sluit je terminal en open deze opnieuw, of voer
- Vraag: Mijn applicatie kan geen verbinding maken met de database na het wisselen van versie?
- Antwoord: Controleer de databaseconfiguratie van je applicatie en zorg dat het poortnummer overeenkomt met dat van de nieuwe PostgreSQL-versie (standaard poort 5432). Kijk ook of je database-driver/ORM compatibel is met de nieuwe PostgreSQL-versie.
Samenvatting
Door de stappen in dit artikel te volgen, kun je veilig en soepel het standaard PostgreSQL-versienummer in ServBay aanpassen. Cruciaal is dat je eerst een volledige back-up maakt, vervolgens via het pakketbeheer en instellingen van ServBay de gewenste versie kiest, en daarna je data overzet en controleert. Dankzij het gebruiksgemak van ServBay kunnen ontwikkelaars flexibel lokale databaseversies beheren en aan verschillende projectwensen voldoen.