Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Databasemigraties | Werken Met Databases
Spring Boot Backend

bookDatabasemigraties

Deze afbeelding toont de voortgang van databasemigraties over versies. Elke versie weerspiegelt wijzigingen in de databasestructuur, zoals het aanmaken van tabellen, het wijzigen van velden of het toevoegen/verwijderen van kolommen, om te voldoen aan de eisen van de applicatie.

Bij het ontwikkelen van een applicatie kan het nodig zijn om het databaseschema te wijzigen: nieuwe tabellen toevoegen, bestaande tabellen aanpassen, indexen introduceren, enzovoort.

Migraties helpen deze wijzigingen op een opeenvolgende en georganiseerde manier te beheren, waarbij de integriteit van de gegevens wordt gewaarborgd en het databaseschema in overeenstemming blijft met de code van de applicatie. Voor migraties gebruiken we Flyway.

Wat is Flyway?

Een van de belangrijkste kenmerken van Flyway is de ondersteuning voor migratieversiebeheer, waarmee wijzigingen in de databasestructuur kunnen worden gevolgd en kan worden teruggekeerd naar vorige versies indien nodig.

Een migratie aanmaken met Flyway

Voeg om te beginnen de Flyway dependency toe aan het Spring Boot-project. Aangezien we Maven gebruiken, voeg de volgende dependency toe aan het pom.xml bestand:

We zullen ook een extra JPA-afhankelijkheid toevoegen, die samenwerkt met Flyway. JPA wordt later in meer detail behandeld.

Deze afhankelijkheid ondersteunt de integratie van Flyway in het project. Verdere configuratie is echter vereist.

Flyway moet weten met welke database gewerkt wordt; daarom is het noodzakelijk om de database expliciet te specificeren en toegangsgegevens te verstrekken.

De belangrijkste configuraties kunnen worden ingesteld in application.properties:

spring.flyway.url=jdbc:mysql://localhost:3306/my_database
spring.flyway.user=root
spring.flyway.password={your_password}

We moeten de url, user en password opgeven om Flyway met onze database te laten werken.

Om echter te voorkomen dat deze waarden meerdere keren moeten worden ingevoerd, kunnen we ze refereren vanuit andere parameters met behulp van de ${} syntaxis.

spring.flyway.url=${spring.datasource.url}
spring.flyway.user=${spring.datasource.username}
spring.flyway.password=${spring.datasource.password}

spring.datasource.url=jdbc:mysql://localhost:3306/my_database
spring.datasource.username=root
spring.datasource.password={your_password}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

In het vorige hoofdstuk hebben we een my_database database aangemaakt en een book table toegevoegd. We kunnen de book table nu echter verwijderen, omdat deze via een migratie zal worden aangemaakt.

Nu is alles gereed om onze eerste migratie in de applicatie te maken! We moeten een db-map aanmaken binnen de resources-directory, en daarin een andere map genaamd migration. Het volledige pad ziet er als volgt uit: src/main/resources/db/migration.

In de migratiemap kunnen we nu bestanden aanmaken waarin we onze wijzigingen definiëren. Het bestandsformaat moet zijn: V<version>__<description>.sql.

V1__create_table_books.sql

Migraties worden toegepast in de volgorde van hun versies. De versienummering moet opeenvolgend zijn en zonder hiaten. Bijvoorbeeld, als je migraties hebt V1__init.sql en V2__add_column.sql, dan moet de volgende migratie V3__another_change.sql zijn.

Binnen het migratiebestand kun je SQL-scripts schrijven om de structuur van de database te definiëren, nieuwe tabellen, kolommen, enz. aan te maken.

Laten we het script schrijven voor het aanmaken van de books-tabel, die we handmatig hebben aangemaakt in het vorige hoofdstuk, in ons V1__create_table_books.sql-bestand.

create table book
(
    id varchar(255) not null primary key,
    name varchar(255) not null,
    author varchar(255) null,
    price decimal(10, 2) null
);

Het is ook mogelijk een parameter toe te voegen aan het application.properties bestand die aangeeft waar de migraties zich bevinden, zodat Flyway het exacte pad naar de migratiebestanden weet:

spring.flyway.locations=classpath:db.migration

Voer hierna de applicatie uit, en je zou moeten zien dat de tabel is aangemaakt met de velden die je in de migratie hebt gespecificeerd!

Het is niet langer mogelijk om de eerste versie van de migratie te wijzigen. Voor elke aanpassing aan je tabel moet je een nieuw migratiebestand aanmaken en het nieuwe script daar toevoegen!

Waarom zijn migraties belangrijk?

Migraties zijn noodzakelijk voor een ordelijke beheer van wijzigingen in de database, het behouden van geschiedenis en het mogelijk maken van rollbacks indien nodig.

Ze helpen bij het synchroniseren van de databasestructuur over verschillende omgevingen zoals development, testing en production, terwijl ze ook het updateproces automatiseren, het risico op fouten verminderen en verzekeren dat het databaseschema consistent blijft met de applicatiecode.

Elke migratie documenteert ook specifieke wijzigingen, waardoor het begrijpen en onderhouden van het databaseschema eenvoudiger wordt.

Samenvatting

Het gebruik van Flyway vereenvoudigt en automatiseert het proces van databasebeheer, wat leidt tot een betrouwbaardere en efficiëntere applicatieontwikkeling.

1. Wat is een database-migratie?

2. Welke rol spelen migratieversies?

question mark

Wat is een database-migratie?

Select the correct answer

question mark

Welke rol spelen migratieversies?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

What are the steps to create a migration file with Flyway?

How does Flyway handle versioning and rollbacks?

Can you explain how to configure Flyway in a Spring Boot project?

Awesome!

Completion rate improved to 3.45

bookDatabasemigraties

Veeg om het menu te tonen

Deze afbeelding toont de voortgang van databasemigraties over versies. Elke versie weerspiegelt wijzigingen in de databasestructuur, zoals het aanmaken van tabellen, het wijzigen van velden of het toevoegen/verwijderen van kolommen, om te voldoen aan de eisen van de applicatie.

Bij het ontwikkelen van een applicatie kan het nodig zijn om het databaseschema te wijzigen: nieuwe tabellen toevoegen, bestaande tabellen aanpassen, indexen introduceren, enzovoort.

Migraties helpen deze wijzigingen op een opeenvolgende en georganiseerde manier te beheren, waarbij de integriteit van de gegevens wordt gewaarborgd en het databaseschema in overeenstemming blijft met de code van de applicatie. Voor migraties gebruiken we Flyway.

Wat is Flyway?

Een van de belangrijkste kenmerken van Flyway is de ondersteuning voor migratieversiebeheer, waarmee wijzigingen in de databasestructuur kunnen worden gevolgd en kan worden teruggekeerd naar vorige versies indien nodig.

Een migratie aanmaken met Flyway

Voeg om te beginnen de Flyway dependency toe aan het Spring Boot-project. Aangezien we Maven gebruiken, voeg de volgende dependency toe aan het pom.xml bestand:

We zullen ook een extra JPA-afhankelijkheid toevoegen, die samenwerkt met Flyway. JPA wordt later in meer detail behandeld.

Deze afhankelijkheid ondersteunt de integratie van Flyway in het project. Verdere configuratie is echter vereist.

Flyway moet weten met welke database gewerkt wordt; daarom is het noodzakelijk om de database expliciet te specificeren en toegangsgegevens te verstrekken.

De belangrijkste configuraties kunnen worden ingesteld in application.properties:

spring.flyway.url=jdbc:mysql://localhost:3306/my_database
spring.flyway.user=root
spring.flyway.password={your_password}

We moeten de url, user en password opgeven om Flyway met onze database te laten werken.

Om echter te voorkomen dat deze waarden meerdere keren moeten worden ingevoerd, kunnen we ze refereren vanuit andere parameters met behulp van de ${} syntaxis.

spring.flyway.url=${spring.datasource.url}
spring.flyway.user=${spring.datasource.username}
spring.flyway.password=${spring.datasource.password}

spring.datasource.url=jdbc:mysql://localhost:3306/my_database
spring.datasource.username=root
spring.datasource.password={your_password}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

In het vorige hoofdstuk hebben we een my_database database aangemaakt en een book table toegevoegd. We kunnen de book table nu echter verwijderen, omdat deze via een migratie zal worden aangemaakt.

Nu is alles gereed om onze eerste migratie in de applicatie te maken! We moeten een db-map aanmaken binnen de resources-directory, en daarin een andere map genaamd migration. Het volledige pad ziet er als volgt uit: src/main/resources/db/migration.

In de migratiemap kunnen we nu bestanden aanmaken waarin we onze wijzigingen definiëren. Het bestandsformaat moet zijn: V<version>__<description>.sql.

V1__create_table_books.sql

Migraties worden toegepast in de volgorde van hun versies. De versienummering moet opeenvolgend zijn en zonder hiaten. Bijvoorbeeld, als je migraties hebt V1__init.sql en V2__add_column.sql, dan moet de volgende migratie V3__another_change.sql zijn.

Binnen het migratiebestand kun je SQL-scripts schrijven om de structuur van de database te definiëren, nieuwe tabellen, kolommen, enz. aan te maken.

Laten we het script schrijven voor het aanmaken van de books-tabel, die we handmatig hebben aangemaakt in het vorige hoofdstuk, in ons V1__create_table_books.sql-bestand.

create table book
(
    id varchar(255) not null primary key,
    name varchar(255) not null,
    author varchar(255) null,
    price decimal(10, 2) null
);

Het is ook mogelijk een parameter toe te voegen aan het application.properties bestand die aangeeft waar de migraties zich bevinden, zodat Flyway het exacte pad naar de migratiebestanden weet:

spring.flyway.locations=classpath:db.migration

Voer hierna de applicatie uit, en je zou moeten zien dat de tabel is aangemaakt met de velden die je in de migratie hebt gespecificeerd!

Het is niet langer mogelijk om de eerste versie van de migratie te wijzigen. Voor elke aanpassing aan je tabel moet je een nieuw migratiebestand aanmaken en het nieuwe script daar toevoegen!

Waarom zijn migraties belangrijk?

Migraties zijn noodzakelijk voor een ordelijke beheer van wijzigingen in de database, het behouden van geschiedenis en het mogelijk maken van rollbacks indien nodig.

Ze helpen bij het synchroniseren van de databasestructuur over verschillende omgevingen zoals development, testing en production, terwijl ze ook het updateproces automatiseren, het risico op fouten verminderen en verzekeren dat het databaseschema consistent blijft met de applicatiecode.

Elke migratie documenteert ook specifieke wijzigingen, waardoor het begrijpen en onderhouden van het databaseschema eenvoudiger wordt.

Samenvatting

Het gebruik van Flyway vereenvoudigt en automatiseert het proces van databasebeheer, wat leidt tot een betrouwbaardere en efficiëntere applicatieontwikkeling.

1. Wat is een database-migratie?

2. Welke rol spelen migratieversies?

question mark

Wat is een database-migratie?

Select the correct answer

question mark

Welke rol spelen migratieversies?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
some-alt