1
resposta

Flyway ou Hibernate?

Eu trabalho na manutenção de algumas API's que usam Hibernate, até então eu não conhecia o Flyway, o Hibernate me parece mais simples de usar, porém, pelo que eu andei lendo, o Flyway é mais confiável para atualização de Schemas do bando de dados, pode fazer rollback automático e faz versionamento do banco de dados, essas ultimas duas caracteriscas, aparentemente, não existem no Hibernate mas eu não tenho certeza.

Gostaria de alguma opinião em relação a isso, qual é melhor? É possível utilizar os dois ao mesmo tempo, e se for, é recomendado?

No caso o projeto é bastante incipiente ainda e eu tenho relativamente bastante autonomia pra fazer alterações.

1 resposta

Oi Mateus!

Entendo sua dúvida sobre Flyway e Hibernate, e é ótimo que você esteja explorando diferentes ferramentas para gerenciar suas APIs. Vamos lá:

  1. Hibernate: É uma ferramenta de ORM (Object-Relational Mapping) que facilita a interação com o banco de dados através de objetos Java. Ele é excelente para lidar com as operações de CRUD (Create, Read, Update, Delete) e gerencia o estado das entidades de forma automática. No entanto, ele não lida diretamente com o versionamento do esquema do banco de dados.

  2. Flyway: É uma ferramenta de migração de banco de dados que foca no versionamento e na execução de scripts SQL para atualizar o esquema do banco de dados. Ele permite que você controle as mudanças no banco de dados de forma explícita e ordenada, além de oferecer funcionalidades como rollback, que podem ser muito úteis em ambientes de produção.

Você está certo ao dizer que o Flyway oferece um controle mais robusto sobre o versionamento do banco de dados e rollback, características que não são nativas do Hibernate.

Quanto à sua pergunta sobre usar ambos ao mesmo tempo: Sim, é possível e até comum usar Flyway e Hibernate juntos em um projeto. Flyway pode ser usado para gerenciar o esquema do banco de dados, enquanto o Hibernate cuida das operações de dados. Essa combinação pode proporcionar uma abordagem mais completa para o gerenciamento do banco de dados.

Por exemplo, você pode usar o Flyway para criar e atualizar tabelas com scripts SQL, garantindo que o esquema esteja sempre na versão correta, enquanto o Hibernate gerencia as entidades e suas relações.

Espero ter ajudado e bons estudos!