ByteHub

Configurando Flyway em uma Aplicação Spring Boot com Java

Cover Image for Configurando Flyway em uma Aplicação Spring Boot com Java
Renan Ribeiro Lage
Renan Ribeiro Lage

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!

Comentários


Mais artigos

Cover Image for Monitoramento de Aplicações em Tempo Real com Grafana e Prometheus

Monitoramento de Aplicações em Tempo Real com Grafana e Prometheus

O artigo aborda a importância do monitoramento de aplicações web em tempo real e apresenta uma solução utilizando Grafana e Prometheus. Ele começa com uma introdução dessas duas ferramentas, seguida por instruções para instalação e configuração inicial. O foco principal está em como criar dashboards eficientes no Grafana, destacando métricas importantes como latência, throughput, taxa de erro e utilização de recursos. Além disso, o artigo explora como configurar alertas em Grafana para métricas que ultrapassam um determinado limite. O objetivo é fornecer um guia abrangente para monitorar o desempenho de aplicações web usando Grafana e Prometheus.

Renan Ribeiro Lage
Renan Ribeiro Lage
Cover Image for Usando Loki e Promtail para enviar logs para o Grafana

Usando Loki e Promtail para enviar logs para o Grafana

O artigo aborda como usar Loki e Promtail para enviar logs para uma plataforma Grafana. Loki é um sistema de agregação de logs, e Promtail é um agente que coleta e envia esses logs para Loki. Após uma breve introdução sobre cada componente, o artigo orienta sobre como instalar e configurar essas ferramentas. Ele também explica como criar um painel no Grafana para visualizar os logs coletados. A combinação dessas tecnologias oferece uma solução de monitoramento robusta, eficiente e altamente escalável, ideal para ambientes de microsserviços, aplicações em cloud e outros sistemas onde a observabilidade é crítica.

Renan Ribeiro Lage
Renan Ribeiro Lage