Evoluindo bancos de dados com flyway
-
Upload
vitor-albuquerque -
Category
Software
-
view
83 -
download
0
description
Transcript of Evoluindo bancos de dados com flyway
![Page 1: Evoluindo bancos de dados com flyway](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/5.jpg)
Como funciona
![Page 6: Evoluindo bancos de dados com flyway](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/6.jpg)
Como funciona
![Page 7: Evoluindo bancos de dados com flyway](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/7.jpg)
Como funciona
![Page 8: Evoluindo bancos de dados com flyway](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/8.jpg)
Como funciona
![Page 9: Evoluindo bancos de dados com flyway](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/9.jpg)
Como funciona
![Page 10: Evoluindo bancos de dados com flyway](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/10.jpg)
Configurando o projeto
![Page 11: Evoluindo bancos de dados com flyway](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/12.jpg)
Exemplo de script SQL
V2014.07.02_211022__cria_tabela_de_usuarios.sql
![Page 13: Evoluindo bancos de dados com flyway](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/13.jpg)
Executando o Flyway
![Page 14: Evoluindo bancos de dados com flyway](https://reader034.fdocuments.net/reader034/viewer/2022050721/558bfbffd8b42a253c8b475e/html5/thumbnails/14.jpg)
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