2. Contextualização
• Nós estamos craques em resolver o
problema de versionamento do código
fonte. (SVN, GIT, branches, tags, etc..)
• Mas e o banco de dados?
• Qual a versão exata do banco que nós utilizamos?
• A maioria projetos ainda aplicam as mudanças
manualmente.
02/09/15 FlyWay 2
3. Flyway
• Como o flyway funciona?
• O flyway cria e gerencia uma tabela de meta
dados no banco de dados
• A cada script aplicado, a tabela de meta dados é
atualizada para registrar a mudança e impedir
que ela seja aplicada novamente
• Essa tabela vai conter o versionamento do banco
02/09/15 FlyWay 3
4. Flyway
• Por padrão essa tabela é chamada de
schema_version.
• Se existem mais de 1 esquema essa tabela
fica no primeiro esquema configurado
02/09/15 FlyWay 4
12. Realizando uma atualização
• Localização dos Scripts
• Colocar os scripts de atualização do banco dentro do
diretório db/migration do projeto SistemaDATABASE definido
pelo processo.
• Exemplo do SigEventos:
02/09/15 FlyWay 12
15. Realizando uma atualização
• Comando Migrate
• Aplica os scripts que ainda não foram aplicados e
atualiza o versionamento do banco de dados
02/09/15 FlyWay 15
16. Realizando uma atualização
• Comando Migrate
• Aplica os scripts que ainda não foram aplicados e
atualiza o versionamento do banco de dados
02/09/15 FlyWay 16
17. Integração com o Gradle
• O Flyway é integrado ao Gradle
• É possível rodar o flyway automaticamente a partir
de um script do Gradle
02/09/15 FlyWay 17
18. Integração com o Gradle
• O Flyway é integrado ao Gradle
• É possível rodar o flyway automaticamente a partir
de um script do Gradle
02/09/15 FlyWay 18
19. Integração com o Gradle
• O Flyway é integrado ao Gradle
• Possibilitando que a aplicação das mudanças no
banco sejam realizadas automaticamente sem a
intervenção humana. Pode ser colocada dentro
de uma task do Gradle que será executa pelo
jenkins no job que faz deploy do sistema.
• Mais ainda, para que a migração ocorra, os scripts
sqls tem que estar versionados previamente no
controle de versão. Se não, o Gradle não vai
achar e aplicar. Isso evita a aplicação mudanças
no banco sem antes ter versionado o script.
02/09/15 FlyWay 19