Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Utilização do Flyway

No curso foi nos apresentado a ferramente de versionamento de banco de dados o Flyway, fiquei bastante surpreso por que nunca tinha ouvido falar sobre uma ferramenta de versionamento de banco de dados, mas o seu uso me pareceu um pouco estranho, por que nós temos que escrever scripts SQL para fazer o controle, mas e se futuramente quisermos alterar qual banco de dados estamos utilizando ? Pensando que alguns comandos mudam de banco para banco seria uma tarefa um pouco dificil certo ? Por que não continuar utilizando a abstração que a JPA nos proporciona ? e teria alguma forma de alterar o banco de dados sem ter que mexer nos scripts ?

1 resposta
solução!

Olá!

Entendo sua preocupação sobre a utilização do Flyway e a necessidade de escrever scripts SQL específicos para cada banco de dados. Realmente, a mudança de um banco de dados para outro pode ser desafiadora, especialmente se os comandos SQL diferirem entre os sistemas de gerenciamento de banco de dados (SGBDs).

O Flyway é uma ferramenta poderosa para versionamento de banco de dados, mas tem suas particularidades. Ele permite que você gerencie mudanças no esquema do banco de dados de forma controlada e versionada, o que é muito útil em ambientes de desenvolvimento colaborativo e em produção.

Sobre a questão de mudar de banco de dados:

  1. Scripts SQL Específicos:

    • É verdade que os scripts SQL podem variar de um banco de dados para outro. Por exemplo, a sintaxe para criar uma tabela no MySQL pode ser diferente da sintaxe no PostgreSQL.
    • Uma solução é criar scripts SQL específicos para cada banco de dados que você pretende suportar. O Flyway permite que você organize esses scripts em diretórios diferentes e configure qual conjunto de scripts deve ser executado com base no banco de dados em uso.
  2. Utilizando JPA:

    • A JPA (Java Persistence API) abstrai muitas das diferenças entre os bancos de dados, permitindo que você escreva código de persistência de forma mais genérica. No entanto, a JPA não lida com mudanças no esquema do banco de dados, como adicionar ou remover colunas, criar índices, etc.
    • Você pode combinar o uso da JPA para operações de CRUD (Create, Read, Update, Delete) com o Flyway para versionamento do esquema do banco de dados.
  3. Abstração de Scripts:

    • Existem algumas ferramentas e frameworks que tentam abstrair a criação de scripts de migração de banco de dados, gerando SQL específico para cada banco de dados suportado. Um exemplo é o Liquibase, que permite escrever mudanças no banco de dados em XML, YAML, JSON ou até mesmo em Java, e então gera os scripts SQL apropriados para o banco de dados em uso.

Espero ter ajudado e bons estudos!