Configurando Flyway em uma Aplicação Spring Boot com Java
Introdução
Flyway é uma ferramenta de migração de banco de dados que ajuda os desenvolvedores a gerenciar e aplicar mudanças no esquema do banco de dados. Em um projeto Java com Spring Boot, integrar o Flyway é uma tarefa simples, mas altamente eficaz, para manter seu banco de dados versionado e atualizado.
Neste artigo, vamos abordar como configurar o Flyway em um projeto Spring Boot com Java.
Pré-requisitos
- Java 8 ou superior
- Spring Boot 2.x
- Maven ou Gradle
- Um banco de dados relacional (PostgreSQL, MySQL, H2, etc.)
Dependência do Maven
Adicione a seguinte dependência ao seu arquivo pom.xml
:
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
Se você estiver usando Gradle, adicione esta linha ao seu build.gradle
:
implementation 'org.flywaydb:flyway-core'
Configuração do application.properties
No seu arquivo application.properties
, configure as informações do banco de dados e do Flyway.
Por exemplo, para um banco de dados PostgreSQL:
spring.datasource.url=jdbc:postgresql://localhost:5432/mydatabase
spring.datasource.username=myuser
spring.datasource.password=mypassword
# Flyway Configuration
spring.flyway.baseline-on-migrate=true
A propriedade baseline-on-migrate
é opcional e cria uma linha de base do esquema atual se ele não estiver vazio.
Criando Migrações
O Flyway procura migrações no diretório src/main/resources/db/migration
. Os arquivos de migração devem seguir um padrão de nomenclatura. O padrão mais comum é V<VERSION>__Description.sql
. Por exemplo, o primeiro arquivo de migração pode ser nomeado V1__Initial_setup.sql
.
Exemplo de conteúdo do V1__Initial_setup.sql
:
CREATE TABLE example (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
Aplicando Migrações
Por padrão, as migrações do Flyway são aplicadas automaticamente na inicialização da aplicação. Se você quiser desativar este comportamento, você pode fazê-lo adicionando a seguinte propriedade ao application.properties
:
spring.flyway.enabled=false
Para executar migrações manualmente, você pode usar os seguintes comandos do Maven:
mvn flyway:migrate
Ou com Gradle:
./gradlew flywayMigrate
Conclusão
Flyway é uma ferramenta poderosa e fácil de usar para gerenciar migrações de banco de dados em aplicações Java Spring Boot. Com apenas algumas configurações e a adição de uma dependência, você pode manter seu banco de dados versionado e atualizado de forma eficiente.
Agora você tem um bom ponto de partida para utilizar o Flyway em seus projetos Spring Boot!