Upload
jadson-santos
View
411
Download
0
Embed Size (px)
Citation preview
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