Tietokantamuutokset
Tämä kuva esittää tietokantamuutosten etenemistä versioiden välillä. Jokainen versio kuvastaa muutoksia tietokantarakenteeseen, kuten taulujen luomista, kenttien muokkaamista tai sarakkeiden lisäämistä/poistamista, jotta tietokanta pysyy sovelluksen vaatimusten mukaisena.
Sovellusta kehittäessä voi olla tarpeen muokata tietokantakaaviota: lisätä uusia tauluja, päivittää olemassa olevia, ottaa käyttöön indeksejä ja niin edelleen.
Migraatiot auttavat hallinnoimaan näitä muutoksia järjestelmällisesti ja peräkkäin, varmistaen tiedon eheyden ja pitäen tietokantakaavion sovelluksen koodin mukaisena. Migraatioihin käytetään Flyway-työkalua.
Mikä on Flyway?
Yksi Flyway-työkalun keskeisistä ominaisuuksista on migraatioiden versioinnin tuki, jonka avulla voidaan seurata tietokantarakenteen muutoksia ja palauttaa aiempiin versioihin tarvittaessa.
Migraation luominen Flywaylla
Aloita lisäämällä Flyway-riippuvuus Spring Boot -projektiisi. Koska käytämme Mavenia, lisää seuraava riippuvuus pom.xml-tiedostoon:
Lisäämme myös toisen JPA-riippuvuuden, joka toimii yhdessä Flyway kanssa. Käsittelemme JPA:ta tarkemmin myöhemmin.
Tämä riippuvuus auttaa meitä integroimaan Flyway projektiimme! Mutta siinä ei ole vielä kaikki, meidän täytyy vielä konfiguroida se!
Tietysti Flyway tarvitsee tiedon siitä, minkä tietokannan kanssa se toimii, joten meidän täytyy määrittää tietokanta ja antaa käyttöoikeustiedot.
Pääasialliset asetukset voidaan määrittää tiedostossa application.properties:
spring.flyway.url=jdbc:mysql://localhost:3306/my_database
spring.flyway.user=root
spring.flyway.password={your_password}
Meidän täytyy määrittää url, user ja password, jotta Flyway voi toimia tietokantamme kanssa.
Kuitenkin, jotta vältytään syöttämästä näitä arvoja useaan kertaan, voimme viitata niihin muihin parametreihin käyttämällä ${} syntaksia.
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
Edellisessä luvussa loimme my_database tietokannan ja lisäsimme siihen book taulun. Nyt voimme kuitenkin poistaa book taulun, koska se luodaan migraation kautta.
Nyt kaikki on valmista ensimmäisen migraation luomista varten sovelluksessa! Meidän tulee luoda db-kansio resources-hakemiston sisälle, ja tämän kansion sisälle luoda vielä toinen nimeltään migration. Koko polun tulisi näyttää tältä: src/main/resources/db/migration.
Migration-hakemistoon voimme nyt luoda tiedostoja, joissa määrittelemme muutokset. Tiedoston muodon tulee olla V<version>__<description>.sql.
V1__create_table_books.sql
Migraatiot suoritetaan versioiden mukaisessa järjestyksessä. Versioiden numeroinnin tulee olla peräkkäinen ja katkeamaton. Esimerkiksi, jos sinulla on migraatiot V1__init.sql ja V2__add_column.sql, seuraavan migraation tulisi olla V3__another_change.sql.
Migraatiotiedostossa voit kirjoittaa SQL-skriptejä määritelläksesi tietokannan rakenteen, luoda uusia tauluja, sarakkeita jne.
Kirjoitetaan nyt skripti books-taulun luomiseksi, jonka loimme manuaalisesti edellisessä luvussa, tiedostoon V1__create_table_books.sql.
create table book
(
id varchar(255) not null primary key,
name varchar(255) not null,
author varchar(255) null,
price decimal(10, 2) null
);
Voit myös lisätä parametrin application.properties tiedostoon, joka määrittää, missä migraatiot sijaitsevat, jotta Flyway tietää tarkan polun migraatiotiedostoihin:
spring.flyway.locations=classpath:db.migration
Tämän jälkeen aja sovellus, ja sinun pitäisi nähdä, että taulu on luotu niillä kentillä, jotka määrittelit migraatiossa!
Et voi enää muokata migraation ensimmäistä versiota. Jokaiselle taulun muutokselle sinun täytyy luoda uusi migraatiotiedosto ja lisätä uusi skripti sinne!
Miksi migraatiot ovat tärkeitä?
Migraatiot ovat välttämättömiä tietokannan muutosten hallinnan järjestelmällisyyden vuoksi, historian säilyttämiseksi ja mahdollistamaan palautukset tarvittaessa.
Ne auttavat synkronoimaan tietokantarakenteen eri ympäristöissä kuten kehitys, testaus ja tuotanto, samalla kun ne automaattisoivat päivitysprosessin, vähentävät virheiden riskiä ja varmistavat, että tietokannan skeema pysyy yhtenäisenä sovelluskoodin kanssa.
Jokainen migraatio myös dokumentoi tietyt muutokset, mikä helpottaa ymmärtämistä ja ylläpitoa tietokannan skeemassa.
Yhteenveto
Flyway-työkalun käyttö yksinkertaistaa ja automatisoi tietokantamuutosten hallintaa, mikä johtaa luotettavampaan ja tehokkaampaan sovelluskehitykseen.
1. Mitä tietokantamigraatio tarkoittaa?
2. Mikä on migraatioversioiden rooli?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.45
Tietokantamuutokset
Pyyhkäise näyttääksesi valikon
Tämä kuva esittää tietokantamuutosten etenemistä versioiden välillä. Jokainen versio kuvastaa muutoksia tietokantarakenteeseen, kuten taulujen luomista, kenttien muokkaamista tai sarakkeiden lisäämistä/poistamista, jotta tietokanta pysyy sovelluksen vaatimusten mukaisena.
Sovellusta kehittäessä voi olla tarpeen muokata tietokantakaaviota: lisätä uusia tauluja, päivittää olemassa olevia, ottaa käyttöön indeksejä ja niin edelleen.
Migraatiot auttavat hallinnoimaan näitä muutoksia järjestelmällisesti ja peräkkäin, varmistaen tiedon eheyden ja pitäen tietokantakaavion sovelluksen koodin mukaisena. Migraatioihin käytetään Flyway-työkalua.
Mikä on Flyway?
Yksi Flyway-työkalun keskeisistä ominaisuuksista on migraatioiden versioinnin tuki, jonka avulla voidaan seurata tietokantarakenteen muutoksia ja palauttaa aiempiin versioihin tarvittaessa.
Migraation luominen Flywaylla
Aloita lisäämällä Flyway-riippuvuus Spring Boot -projektiisi. Koska käytämme Mavenia, lisää seuraava riippuvuus pom.xml-tiedostoon:
Lisäämme myös toisen JPA-riippuvuuden, joka toimii yhdessä Flyway kanssa. Käsittelemme JPA:ta tarkemmin myöhemmin.
Tämä riippuvuus auttaa meitä integroimaan Flyway projektiimme! Mutta siinä ei ole vielä kaikki, meidän täytyy vielä konfiguroida se!
Tietysti Flyway tarvitsee tiedon siitä, minkä tietokannan kanssa se toimii, joten meidän täytyy määrittää tietokanta ja antaa käyttöoikeustiedot.
Pääasialliset asetukset voidaan määrittää tiedostossa application.properties:
spring.flyway.url=jdbc:mysql://localhost:3306/my_database
spring.flyway.user=root
spring.flyway.password={your_password}
Meidän täytyy määrittää url, user ja password, jotta Flyway voi toimia tietokantamme kanssa.
Kuitenkin, jotta vältytään syöttämästä näitä arvoja useaan kertaan, voimme viitata niihin muihin parametreihin käyttämällä ${} syntaksia.
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
Edellisessä luvussa loimme my_database tietokannan ja lisäsimme siihen book taulun. Nyt voimme kuitenkin poistaa book taulun, koska se luodaan migraation kautta.
Nyt kaikki on valmista ensimmäisen migraation luomista varten sovelluksessa! Meidän tulee luoda db-kansio resources-hakemiston sisälle, ja tämän kansion sisälle luoda vielä toinen nimeltään migration. Koko polun tulisi näyttää tältä: src/main/resources/db/migration.
Migration-hakemistoon voimme nyt luoda tiedostoja, joissa määrittelemme muutokset. Tiedoston muodon tulee olla V<version>__<description>.sql.
V1__create_table_books.sql
Migraatiot suoritetaan versioiden mukaisessa järjestyksessä. Versioiden numeroinnin tulee olla peräkkäinen ja katkeamaton. Esimerkiksi, jos sinulla on migraatiot V1__init.sql ja V2__add_column.sql, seuraavan migraation tulisi olla V3__another_change.sql.
Migraatiotiedostossa voit kirjoittaa SQL-skriptejä määritelläksesi tietokannan rakenteen, luoda uusia tauluja, sarakkeita jne.
Kirjoitetaan nyt skripti books-taulun luomiseksi, jonka loimme manuaalisesti edellisessä luvussa, tiedostoon V1__create_table_books.sql.
create table book
(
id varchar(255) not null primary key,
name varchar(255) not null,
author varchar(255) null,
price decimal(10, 2) null
);
Voit myös lisätä parametrin application.properties tiedostoon, joka määrittää, missä migraatiot sijaitsevat, jotta Flyway tietää tarkan polun migraatiotiedostoihin:
spring.flyway.locations=classpath:db.migration
Tämän jälkeen aja sovellus, ja sinun pitäisi nähdä, että taulu on luotu niillä kentillä, jotka määrittelit migraatiossa!
Et voi enää muokata migraation ensimmäistä versiota. Jokaiselle taulun muutokselle sinun täytyy luoda uusi migraatiotiedosto ja lisätä uusi skripti sinne!
Miksi migraatiot ovat tärkeitä?
Migraatiot ovat välttämättömiä tietokannan muutosten hallinnan järjestelmällisyyden vuoksi, historian säilyttämiseksi ja mahdollistamaan palautukset tarvittaessa.
Ne auttavat synkronoimaan tietokantarakenteen eri ympäristöissä kuten kehitys, testaus ja tuotanto, samalla kun ne automaattisoivat päivitysprosessin, vähentävät virheiden riskiä ja varmistavat, että tietokannan skeema pysyy yhtenäisenä sovelluskoodin kanssa.
Jokainen migraatio myös dokumentoi tietyt muutokset, mikä helpottaa ymmärtämistä ja ylläpitoa tietokannan skeemassa.
Yhteenveto
Flyway-työkalun käyttö yksinkertaistaa ja automatisoi tietokantamuutosten hallintaa, mikä johtaa luotettavampaan ja tehokkaampaan sovelluskehitykseen.
1. Mitä tietokantamigraatio tarkoittaa?
2. Mikä on migraatioversioiden rooli?
Kiitos palautteestasi!