JAVAPROGLIB Telegram 7072
⚙️ Spring Boot + Flyway: пошаговая настройка миграций базы данных

Когда проект живёт дольше полугода — ручное обновление схемы БД превращается в хаос.

Flyway решает эту проблему: управляет версионированием схемы и миграциями через SQL-скрипты прямо из вашего приложения.

Для настройки:

1️⃣ Добавляем зависимость
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>

ИЛИ

implementation("org.flywaydb:flyway-core")


Также добавляет драйвер для вашей БД.

2️⃣ Создаём структуру для миграций

По умолчанию Flyway ищет скрипты в:
src/main/resources/db/migration/


Пример:
db/migration/
├─ V1__init_schema.sql
├─ V2__add_users_table.sql
└─ V3__add_index_email.sql


Имена файлов важны — Flyway сортирует их по версии (V1, V2, ...).

3️⃣ Пример SQL-миграции

— V1__init_schema.sql

CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10,2) NOT NULL
);

— V2__add_users_table.sql

CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT now()
);


4️⃣ Настройки Flyway в application.yml

spring:
datasource:
url: jdbc:postgresql://localhost:5432/app
username: app
password: secret
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration


Flyway выполнит все миграции, которых ещё нет в таблице flyway_schema_history.

5️⃣ Команды и интеграция

▪️ Локально:
./mvnw flyway:migrate


или просто запустите Spring Boot — миграции применятся автоматически.

▪️ Для CI/CD:

— Используйте flyway:validate перед деплоем.
— Добавляйте новые SQL-файлы при изменении схемы.
— Не редактируйте старые версии (они уже зафиксированы).

6️⃣ Полезные практики

— Используйте R__-скрипты (repeatable migrations) для справочников, триггеров, процедур.
— Версионируйте миграции в Git вместе с кодом.
— Проверяйте миграции на чистой базе перед мержем.
— Совмещайте с Testcontainers для автоматической проверки миграций в CI.

💡 Преимущество Flyway — прозрачная история эволюции базы. Можно воспроизвести схему любой версии, не ломая прод.

🐸 Библиотека джависта

#Enterprise
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3👏1



tgoop.com/javaproglib/7072
Create:
Last Update:

⚙️ Spring Boot + Flyway: пошаговая настройка миграций базы данных

Когда проект живёт дольше полугода — ручное обновление схемы БД превращается в хаос.

Flyway решает эту проблему: управляет версионированием схемы и миграциями через SQL-скрипты прямо из вашего приложения.

Для настройки:

1️⃣ Добавляем зависимость

<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>

ИЛИ

implementation("org.flywaydb:flyway-core")


Также добавляет драйвер для вашей БД.

2️⃣ Создаём структуру для миграций

По умолчанию Flyway ищет скрипты в:
src/main/resources/db/migration/


Пример:
db/migration/
├─ V1__init_schema.sql
├─ V2__add_users_table.sql
└─ V3__add_index_email.sql


Имена файлов важны — Flyway сортирует их по версии (V1, V2, ...).

3️⃣ Пример SQL-миграции

— V1__init_schema.sql

CREATE TABLE products (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10,2) NOT NULL
);

— V2__add_users_table.sql

CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT now()
);


4️⃣ Настройки Flyway в application.yml

spring:
datasource:
url: jdbc:postgresql://localhost:5432/app
username: app
password: secret
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration


Flyway выполнит все миграции, которых ещё нет в таблице flyway_schema_history.

5️⃣ Команды и интеграция

▪️ Локально:
./mvnw flyway:migrate


или просто запустите Spring Boot — миграции применятся автоматически.

▪️ Для CI/CD:

— Используйте flyway:validate перед деплоем.
— Добавляйте новые SQL-файлы при изменении схемы.
— Не редактируйте старые версии (они уже зафиксированы).

6️⃣ Полезные практики

— Используйте R__-скрипты (repeatable migrations) для справочников, триггеров, процедур.
— Версионируйте миграции в Git вместе с кодом.
— Проверяйте миграции на чистой базе перед мержем.
— Совмещайте с Testcontainers для автоматической проверки миграций в CI.

💡 Преимущество Flyway — прозрачная история эволюции базы. Можно воспроизвести схему любой версии, не ломая прод.

🐸 Библиотека джависта

#Enterprise

BY Библиотека джависта | Java, Spring, Maven, Hibernate




Share with your friend now:
tgoop.com/javaproglib/7072

View MORE
Open in Telegram


Telegram News

Date: |

Deputy District Judge Peter Hui sentenced computer technician Ng Man-ho on Thursday, a month after the 27-year-old, who ran a Telegram group called SUCK Channel, was found guilty of seven charges of conspiring to incite others to commit illegal acts during the 2019 extradition bill protests and subsequent months. Image: Telegram. With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree." The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers. While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc.
from us


Telegram Библиотека джависта | Java, Spring, Maven, Hibernate
FROM American