Jadson Santos
Computer Engineer
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
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
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
Instalação
• Passo 1
•  Apenas descompactar o flyway.zip em um diretório de sua
preferência
02/09/15 FlyWay 5
Instalação
• Passo 2
•  Editar o arquivo de configuração do flyway
02/09/15 FlyWay 6
Instalação
• Passo 2
•  Editar o arquivo de configuração do flyway colocando as
configurações do banco
02/09/15 FlyWay 7
Funcionamento
• Comando Info
•  Mostra o status do versionamento do banco
•  Ps.: O flyway chama o versionamento de “migration”
02/09/15 FlyWay 8
Funcionamento
• Comando Validate
•  Valida se todos os sqls foram corretamente aplicados
02/09/15 FlyWay 9
Funcionamento
• Comando BaseLine
•  Aplica todas as mudanças e marca um ponto estável
•  Exemplo de aplicação: A cada versão de aprimoramento
02/09/15 FlyWay 10
Funcionamento
• Comando BaseLine
•  Tabela de versionamento do banco criada:
02/09/15 FlyWay 11
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
Realizando uma atualização
• Nomenclatura padrão dos Scripts do flyway
02/09/15 FlyWay 13
Realizando uma atualização
• Configurando a Localização dos Scripts do
Flyway
02/09/15 FlyWay 14
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
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
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
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
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
Onde saber mais?
• http://flywaydb.org/
• http://flywaydb.org/documentation/
• http://flywaydb.org/documentation/
articles.html
02/09/15 FlyWay 20
FlyWay02/09/15
jadsonjs@gmail.com
21

Introdução ao Flyway