Skip to main content

Wat zijn migraties

Migraties zijn een soort versiebeheer voor je database. Ze stellen een team in staat om de definitie van het databaseschema van de applicatie te delen en te beheren. Je hebt vast weleens meegemaakt dat je na het pullen van de broncode aan teamleden moest vertellen: “voeg handmatig een kolom toe aan je lokale database”. Migraties lossen dat probleem op. Migratiebestanden staan in de directory database/migrations. Elke bestandsnaam bevat een timestamp die Laravel gebruikt om de uitvoeringsvolgorde van de migraties te bepalen.

Een migratiebestand aanmaken

Met het Artisan-commando make:migration genereer je een nieuw migratiebestand.
Laravel leidt uit de migratienaam de tabelnaam af en genereert een passende stub. Heet de migratie create_posts_table, dan staat de code om de tabel posts aan te maken al voor je klaar.

De structuur van een migratie

Een migratieklasse heeft twee methoden: up en down.
  • De up-methode: voegt tabellen, kolommen en indexen toe aan de database.
  • De down-methode: maakt de bewerkingen van up ongedaan. Wordt aangeroepen bij een rollback.

De belangrijkste kolomdefinitiemethoden

De Blueprint-klasse biedt een groot aantal kolomtypen.

Kolommodifiers

Aan kolomdefinities voeg je modifiers toe via een methodchain.

Migraties uitvoeren

Met het commando migrate voer je alle nog niet uitgevoerde migraties uit.
Om te zien welke migraties al zijn uitgevoerd en welke nog niet, gebruik je migrate:status.
Voer je migraties uit in productie, dan verschijnt er een bevestigingsprompt. Wil je zonder bevestiging uitvoeren, gebruik dan de flag --force — maar wees voorzichtig, want sommige bewerkingen kunnen data laten verdwijnen.

Rollback

Om de laatste batch migraties terug te draaien gebruik je migrate:rollback.
Wil je een specifiek aantal stappen terugdraaien, geef dan de optie --step op.
Om alle migraties terug te draaien en daarna opnieuw uit te voeren gebruik je migrate:refresh.
migrate:refresh bouwt alle tabellen opnieuw op, waardoor bestaande data verloren gaat. Handig om de database tijdens de ontwikkeling te resetten.

Praktijkvoorbeeld: de posts-tabel aanmaken

Aan de hand van een posts-tabel voor blogposts lopen we het hele proces door.

1. Het migratiebestand genereren

2. De migratie bewerken

Open en bewerk database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php.

3. De migratie uitvoeren

Na uitvoering is de tabel posts in de database aangemaakt.

4. Later een kolom toevoegen

Wil je na het aanmaken van de tabel een nieuwe kolom toevoegen, bewerk dan niet de bestaande migratie, maar maak een nieuwe migratie aan.
Vermijd het direct bewerken van bestaande migratiebestanden. Dat verstoort de consistentie met andere teamleden en de productieomgeving. Voeg wijzigingen altijd toe als nieuwe migratie.

Migratie-events

Bij elke migratiebewerking worden events uitgezonden. Alle events erven over van Illuminate\Database\Events\MigrationEvent. Je kunt bijvoorbeeld luisteren naar het event MigrationsEnded en na afronding van de migraties de cache legen.

Volgende stappen

Databaseseeding

Leer hoe je voorbeelddata plaatst in de tabellen die je met migraties hebt aangemaakt.

Introductie tot Eloquent

Leer hoe je de tabellen die je met migraties hebt aangemaakt bewerkt met de Eloquent ORM.
Laatst gewijzigd op 6 september 2026

Gerelateerde onderwerpen

Mappenstructuur