Você está na página 1de 21

Jadson Santos

Computer Engineer
02/09/15 FlyWay 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 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 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 5

Instalação
•  Passo 1
•  Apenas descompactar o flyway.zip em um diretório de sua
preferência
02/09/15 FlyWay 6

Instalação
•  Passo 2
•  Editar o arquivo de configuração do flyway
02/09/15 FlyWay 7

Instalação
•  Passo 2
•  Editar o arquivo de configuração do flyway colocando as
configurações do banco
02/09/15 FlyWay 8

Funcionamento
•  Comando Info
•  Mostra o status do versionamento do banco
•  Ps.: O flyway chama o versionamento de “migration”
02/09/15 FlyWay 9

Funcionamento
•  Comando Validate
•  Valida se todos os sqls foram corretamente aplicados
02/09/15 FlyWay 10

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 11

Funcionamento
•  Comando BaseLine
•  Tabela de versionamento do banco criada:
02/09/15 FlyWay 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 13

Realizando uma atualização


•  Nomenclatura padrão dos Scripts do flyway
02/09/15 FlyWay 14

Realizando uma atualização


•  Configurando a Localização dos Scripts do
Flyway
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

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 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
•  É possível rodar o flyway automaticamente a partir
de um script do Gradle
02/09/15 FlyWay 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 20

Onde saber mais?

•  http://flywaydb.org/

•  http://flywaydb.org/documentation/

•  http://flywaydb.org/documentation/
articles.html
02/09/15 FlyWay 21

jadsonjs@gmail.com