evoluindo bancos de dados com flyway
DESCRIPTION
Apresentação feita para o GeekNightRecife.github.io falando sobre Flyway e descentralização de banco de dados.TRANSCRIPT
Evoluindo Bancos de Dados com Flyway
E uma alternativa ao uso do banco de dados centralizado.
Vitor Albuquerque @vrcca
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.
Como funciona
Como funciona
Como funciona
Como funciona
Como funciona
Configurando o projeto
Programação por ConvençãoFormatos aceitos:• 1• 001• 5.2• 5_2 (5.2 at runtime)• 1.2.3.4.5.6.7.8.9• 205.68• 20130115113556• 2013.1.15.11.35.56• 2013.01.15.11.35.5
6
Exemplo de script SQL
V2014.07.02_211022__cria_tabela_de_usuarios.sql
Executando o Flyway
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