15
Evoluindo Bancos de Dados com Flyway E uma alternativa ao uso do banco de dados centralizado. Vitor Alb uquerque @vrcca

Evoluindo bancos de dados com flyway

Embed Size (px)

DESCRIPTION

Apresentação feita para o GeekNightRecife.github.io falando sobre Flyway e descentralização de banco de dados.

Citation preview

Page 1: Evoluindo bancos de dados com flyway

Evoluindo Bancos de Dados com Flyway

E uma alternativa ao uso do banco de dados centralizado.

Vitor Albuquerque @vrcca

Page 2: Evoluindo bancos de dados com flyway

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)

Page 3: Evoluindo bancos de dados com 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.

Page 4: Evoluindo bancos de dados com flyway

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.

Page 5: Evoluindo bancos de dados com flyway

Como funciona

Page 6: Evoluindo bancos de dados com flyway

Como funciona

Page 7: Evoluindo bancos de dados com flyway

Como funciona

Page 8: Evoluindo bancos de dados com flyway

Como funciona

Page 9: Evoluindo bancos de dados com flyway

Como funciona

Page 10: Evoluindo bancos de dados com flyway

Configurando o projeto

Page 11: Evoluindo bancos de dados com flyway

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

Page 12: Evoluindo bancos de dados com flyway

Exemplo de script SQL

V2014.07.02_211022__cria_tabela_de_usuarios.sql

Page 13: Evoluindo bancos de dados com flyway

Executando o Flyway

Page 14: Evoluindo bancos de dados com 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

Page 15: Evoluindo bancos de dados com flyway

Dúvidas?

Vitor [email protected]

@vrcca