21
Jadson Santos Computer Engineer

Introdução ao Flyway

Embed Size (px)

Citation preview

Page 1: Introdução ao Flyway

Jadson Santos Computer Engineer

Page 2: Introdução ao Flyway

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

Page 3: Introdução ao Flyway

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

Page 4: Introdução ao Flyway

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

Page 5: Introdução ao Flyway

Instalação • Passo 1

•  Apenas descompactar o flyway.zip em um diretório de sua preferência

02/09/15 FlyWay 5

Page 6: Introdução ao Flyway

Instalação • Passo 2

•  Editar o arquivo de configuração do flyway

02/09/15 FlyWay 6

Page 7: Introdução ao Flyway

Instalação • Passo 2

•  Editar o arquivo de configuração do flyway colocando as configurações do banco

02/09/15 FlyWay 7

Page 8: Introdução ao Flyway

Funcionamento • Comando Info

•  Mostra o status do versionamento do banco •  Ps.: O flyway chama o versionamento de “migration”

02/09/15 FlyWay 8

Page 9: Introdução ao Flyway

Funcionamento • Comando Validate

•  Valida se todos os sqls foram corretamente aplicados

02/09/15 FlyWay 9

Page 10: Introdução ao Flyway

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

Page 11: Introdução ao Flyway

Funcionamento • Comando BaseLine

•  Tabela de versionamento do banco criada:

02/09/15 FlyWay 11

Page 12: Introdução ao Flyway

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

Page 13: Introdução ao Flyway

Realizando uma atualização • Nomenclatura padrão dos Scripts do flyway

02/09/15 FlyWay 13

Page 14: Introdução ao Flyway

Realizando uma atualização • Configurando a Localização dos Scripts do Flyway

02/09/15 FlyWay 14

Page 15: Introdução ao Flyway

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

Page 16: Introdução ao Flyway

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

Page 17: Introdução ao Flyway

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

Page 18: Introdução ao Flyway

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

Page 19: Introdução ao Flyway

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

Page 20: Introdução ao Flyway

Onde saber mais?

• http://flywaydb.org/

• http://flywaydb.org/documentation/

• http://flywaydb.org/documentation/articles.html

02/09/15 FlyWay 20

Page 21: Introdução ao Flyway

FlyWay 02/09/15

[email protected]

21