DEV Community

Cover image for Flyway & Azure DevOps : Rodando Flyway Localmente
Higor Luis Barbosa
Higor Luis Barbosa

Posted on

Flyway & Azure DevOps : Rodando Flyway Localmente

Instalamos o Flyway localmente e criamos o nosso banco de dados SQL Database no Azure. Agora, iremos rodar ele.

Tópicos

Connection String

E para isso, vamos ir no diretorio do flyway e abrir o arquivo flyway.conf dentro do diretorio conf.

Precisamos retirar o comentário do parâmetro flyway.url e adicionar a nossa conexão. Podemos obter ela no portal do azure, indo no nosso servico do SQL Database e em Settings / Connection String.

Alt Text

E dentro de Connection String, vamos ir na aba JDBC e copiar a conexao disponivel.

Alt Text

Não precisamos colocar todo o conteúdo do JDBC, podemos adicionar ele apenas ate o nome do nosso database, ficando assim:

Alt Text

O flyway.user e flyway.user tambem é opcional.

E podemos novamente rodar o comando flyway info. Ele pedirá nosso usuário e senha e mostrará essa mensagem: No migrations found.

Alt Text

Criando nosso Primeiro Script

E vamos ir ate a pasta sql. E é nela que devemos adicionar os nossos scripts SQL.

Podemos renomear o arquivo existente por V1__CreateTables.sql.

Alt Text

E abrindo o arquivo, iremos incluir esse script.

/* Single line comment */
CREATE TABLE Customers (
CustomerId smallint identity(1,1),
Name nvarchar(255),
Priority tinyint
)
CREATE TABLE Sales (
TransactionId smallint identity(1,1),
CustomerId smallint,
[Net Amount] int,
Completed bit
)
GO

E como podemos ver, ele é bem simples. Irá criar 2 tabelas ....

E vamos rodar novamente o comando flyway info.

E veja, agora temos 1 script, pendente de migração.

Alt Text

Migração

E vamos executar a migração.
Faremos ela, com o comando flyway migrate.

Alt Text

E podemos ver que ele migrou com sucesso.

Vamos agora ao Azure, acessando o Query Editor do nosso banco de dados SQL Database. Atualizando as tables, podemos ver que o script foi executado e criou as 2 tabelas.

Alt Text

Além disso, o Flyway criou a tabela dbo.flyway_schema_history. Ele usa esse tabela para manter o histórico de execucação dos Scripts.

SELECT TOP (1000) * FROM [dbo].[flyway_schema_history]

Executando o comando acima, podemos ver dados quanto ao script executado, como a versão, o nome do script, quem executou e quando.

Alt Text

No próximo artigo dessa serie, iremos rodar o Flyway a partir do nosso pipeline de Deploy Continua usando o Azure DevOps.

:)

Discussion (2)

Collapse
jaquelinesantos11 profile image
JaquelineSantos11

Higor você sabe se existe uma autenticação do flyway via Azure AD ?

Collapse
higor profile image
Higor Luis Barbosa Author

Oi, existe sim. Voce consegue usando o ADAL4J. flywaydb.org/documentation/databas...