Introdução ao Flyway

Preview:

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

FlyWay 02/09/15

jadsonjs@gmail.com

21

Recommended