Evoluindo Bancos de Dados
com Flyway
E uma alternativa ao uso do banco de dados
centralizado.
O que é o Flyway?
•Ferramenta de migração de banco de dados
•Integra-se com Maven, Ant, Gradle, etc.
•Funciona com os scripts SQL existentes
•Compatível com vários BDs
•Possui Java API
•Disponível para Android
•Open source (https://github.com/flyway/flyway)
Motivação
•Mudanças constantes no banco de dados.
•Interrupção do desenvolvimento por mudanças no BD.
•Scripts SQL se perdiam até chegar em produção.
•Versionamento e ordenação dos scripts.
•Constante recriação manual do banco de dados em ambientes diferentes
(desenv, test, etc).
•Desenvolvedores utilizando registros de outros.
Como o Flyway resolve estes problemas?
•Scripts passam a ficar na pasta "código" ao invés de "documentos" no SCM.
•Flyway se encarrega de recriar ou atualizar o banco de dados.
•Desenvolvedores devem criar o script de mudança na ordem correta.
•Viabiliza a utilização de um banco por desenvolvedor.
•Viabiliza a entrega contínua.
Alternativa ao banco de dados centralizado
•Cada desenvolvedor com seu banco de dados.
•Scripts são validados em vários ambientes antes de ir para homologação e
produção.
•Mudanças no banco não afetam a equipe inteira.
•Desenvolvedores poderão mudar de branch ou versão sem necessidade de
uma solicitação de criação de banco de dados.
•Problemas de rede e conexão não afetarão mais o desenvolvimento.
•Viabiliza o home office! ;D