Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Міграції Баз Даних | Робота з Базами Даних
Spring Boot Backend

bookМіграції Баз Даних

Це зображення демонструє послідовність міграцій бази даних через версії. Кожна версія відображає зміни у структурі бази даних, такі як створення таблиць, модифікація полів або додавання/видалення стовпців, щоб відповідати вимогам застосунку.

Під час розробки застосунку може виникнути потреба змінювати схему бази даних: додавати нові таблиці, оновлювати існуючі, впроваджувати індекси тощо.

Міграції допомагають керувати цими змінами у послідовний та організований спосіб, забезпечуючи цілісність даних і узгодженість схеми бази даних із кодом застосунку. Для міграцій ми будемо використовувати Flyway.

Що таке Flyway?

Однією з ключових функцій Flyway є підтримка версійності міграцій, що дозволяє відстежувати зміни у структурі бази даних та повертатися до попередніх версій за потреби.

Створення міграції з Flyway

Для початку додайте залежність Flyway до вашого проєкту Spring Boot. Оскільки використовується Maven, додайте наступну залежність до файлу pom.xml:

Ми також додамо ще одну залежність JPA, яка працює разом із Flyway. Ми розглянемо JPA більш детально пізніше.

Ця залежність допоможе інтегрувати Flyway у наш проєкт! Але це ще не все, нам потрібно ще налаштувати його!

Звісно, Flyway повинен знати, з якою базою даних він буде працювати, тому необхідно явно вказати базу даних і надати облікові дані для доступу.

Основні налаштування можна задати у файлі application.properties:

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

Необхідно вказати url, user та password, щоб Flyway міг працювати з нашою базою даних.

Однак, щоб уникнути багаторазового введення цих значень, можна посилатися на них через інші параметри за допомогою синтаксису ${}.

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

У попередньому розділі ми створили базу даних my_database та додали до неї таблицю book. Проте тепер можна видалити таблицю book, оскільки вона буде створена за допомогою міграції.

Тепер усе готово для створення нашої першої міграції в застосунку! Необхідно створити папку db у директорії resources, а всередині цієї папки — ще одну з назвою migration. Повний шлях має виглядати так: src/main/resources/db/migration.

У директорії міграцій тепер можна створювати файли, у яких будемо визначати наші зміни. Формат імені файлу має бути таким: V<version>__<description>.sql.

V1__create_table_books.sql

Міграції застосовуються у порядку їхніх версій. Нумерація версій повинна бути послідовною та без пропусків. Наприклад, якщо у вас є міграції V1__init.sql та V2__add_column.sql, то наступна міграція повинна бути V3__another_change.sql.

У файлі міграції можна писати SQL-скрипти для визначення структури бази даних, створення нових таблиць, стовпців тощо.

Давайте напишемо скрипт для створення таблиці books, яку ми створювали вручну у попередньому розділі, у нашому файлі 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
);

Можна також додати параметр до файлу application.properties, який вказує, де знаходяться міграції, щоб Flyway знав точний шлях до файлів міграцій:

spring.flyway.locations=classpath:db.migration

Після цього запустіть застосунок, і ви повинні побачити, що таблиця створена з тими полями, які ви вказали у міграції!

Ви більше не можете змінювати першу версію міграції. Для кожної зміни у вашій таблиці потрібно створювати новий файл міграції та додавати новий скрипт саме туди!

Чому міграції важливі?

Міграції необхідні для впорядкованого керування змінами у базі даних, збереження історії та можливості відкату при потребі.

Вони допомагають синхронізувати структуру бази даних між різними середовищами, такими як розробка, тестування та продакшн, а також автоматизують процес оновлення, зменшують ризик помилок і гарантують, що схема бази даних залишається узгодженою з кодом застосунку.

Кожна міграція також документує конкретні зміни, що полегшує розуміння та супровід схеми бази даних.

Підсумок

Використання Flyway спрощує та автоматизує процес керування змінами бази даних, що призводить до більш надійної та ефективної розробки застосунків.

1. Що таке міграція бази даних?

2. Яку роль відіграють версії міграцій?

question mark

Що таке міграція бази даних?

Select the correct answer

question mark

Яку роль відіграють версії міграцій?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.45

bookМіграції Баз Даних

Свайпніть щоб показати меню

Це зображення демонструє послідовність міграцій бази даних через версії. Кожна версія відображає зміни у структурі бази даних, такі як створення таблиць, модифікація полів або додавання/видалення стовпців, щоб відповідати вимогам застосунку.

Під час розробки застосунку може виникнути потреба змінювати схему бази даних: додавати нові таблиці, оновлювати існуючі, впроваджувати індекси тощо.

Міграції допомагають керувати цими змінами у послідовний та організований спосіб, забезпечуючи цілісність даних і узгодженість схеми бази даних із кодом застосунку. Для міграцій ми будемо використовувати Flyway.

Що таке Flyway?

Однією з ключових функцій Flyway є підтримка версійності міграцій, що дозволяє відстежувати зміни у структурі бази даних та повертатися до попередніх версій за потреби.

Створення міграції з Flyway

Для початку додайте залежність Flyway до вашого проєкту Spring Boot. Оскільки використовується Maven, додайте наступну залежність до файлу pom.xml:

Ми також додамо ще одну залежність JPA, яка працює разом із Flyway. Ми розглянемо JPA більш детально пізніше.

Ця залежність допоможе інтегрувати Flyway у наш проєкт! Але це ще не все, нам потрібно ще налаштувати його!

Звісно, Flyway повинен знати, з якою базою даних він буде працювати, тому необхідно явно вказати базу даних і надати облікові дані для доступу.

Основні налаштування можна задати у файлі application.properties:

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

Необхідно вказати url, user та password, щоб Flyway міг працювати з нашою базою даних.

Однак, щоб уникнути багаторазового введення цих значень, можна посилатися на них через інші параметри за допомогою синтаксису ${}.

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

У попередньому розділі ми створили базу даних my_database та додали до неї таблицю book. Проте тепер можна видалити таблицю book, оскільки вона буде створена за допомогою міграції.

Тепер усе готово для створення нашої першої міграції в застосунку! Необхідно створити папку db у директорії resources, а всередині цієї папки — ще одну з назвою migration. Повний шлях має виглядати так: src/main/resources/db/migration.

У директорії міграцій тепер можна створювати файли, у яких будемо визначати наші зміни. Формат імені файлу має бути таким: V<version>__<description>.sql.

V1__create_table_books.sql

Міграції застосовуються у порядку їхніх версій. Нумерація версій повинна бути послідовною та без пропусків. Наприклад, якщо у вас є міграції V1__init.sql та V2__add_column.sql, то наступна міграція повинна бути V3__another_change.sql.

У файлі міграції можна писати SQL-скрипти для визначення структури бази даних, створення нових таблиць, стовпців тощо.

Давайте напишемо скрипт для створення таблиці books, яку ми створювали вручну у попередньому розділі, у нашому файлі 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
);

Можна також додати параметр до файлу application.properties, який вказує, де знаходяться міграції, щоб Flyway знав точний шлях до файлів міграцій:

spring.flyway.locations=classpath:db.migration

Після цього запустіть застосунок, і ви повинні побачити, що таблиця створена з тими полями, які ви вказали у міграції!

Ви більше не можете змінювати першу версію міграції. Для кожної зміни у вашій таблиці потрібно створювати новий файл міграції та додавати новий скрипт саме туди!

Чому міграції важливі?

Міграції необхідні для впорядкованого керування змінами у базі даних, збереження історії та можливості відкату при потребі.

Вони допомагають синхронізувати структуру бази даних між різними середовищами, такими як розробка, тестування та продакшн, а також автоматизують процес оновлення, зменшують ризик помилок і гарантують, що схема бази даних залишається узгодженою з кодом застосунку.

Кожна міграція також документує конкретні зміни, що полегшує розуміння та супровід схеми бази даних.

Підсумок

Використання Flyway спрощує та автоматизує процес керування змінами бази даних, що призводить до більш надійної та ефективної розробки застосунків.

1. Що таке міграція бази даних?

2. Яку роль відіграють версії міграцій?

question mark

Що таке міграція бази даних?

Select the correct answer

question mark

Яку роль відіграють версії міграцій?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3
some-alt