E vamos, enfim, criar o nosso Deploy continuo utilizando o Azure DevOps.
Se você não tem uma conta ainda, pode criar acessando esse link
Tópicos
Repositório GIT
Vamos criar o nosso projeto usando repositório GIT do serviço Repos do Azure DevOps.
E vamos ir em *Repos > Files *.
Podemos iniciar nosso repositório.
E criar uma nova pasta.
Vamos chamá-la de scripts e vamos criar o arquivo V2__SecoundScript.sql.
E vamos adicionar o script abaixo no arquivo.
INSERT INTO Customers (name,Priority ) VALUES ('Mr. T', 1);
INSERT INTO Customers (name,Priority ) VALUES ('Bob', 5);
E podemos commitar na nossa branch master.
E agora, podemos adicionar ao nosso pipeline.
Release Pipeline
Vamos ir em Pipelines > Releases.
E vamos ir em New Pipeline.
Naã vamos selecionar um template. Usaremos o empty job.
Vamos adicionar o nome de Flyway Info no primeiro stage.
E adicionar nosso artefato.
Vamos selecionar a opção Azure Repos GIT, o nosso projeto, repositório, a branch master e adicionar o nosso alias ao artefato.
Podemos agora editar o nosso stage.
Extensão do Flyway no Marketplace
Vamos adicionar uma nova tarefa e procurar por flyway.
E podemos ver a extensão abaixo. Precisamos instalar ela. Vamos ir em Get it free para adicionar ela a nossa organização do Azure DevOps.
E aqui podemos conferir que ainda está em preview. Mas vamos instalar ela. Get it free.
Vamos selecionar a nossa organização e clicar em Install.
Caso você utilize a versão on-premise do Azure DevOps, pode baixar a extensão em download.
Podemos atualizar a nossa lista de tarefas do agent job e vemos 2 tarefas disponíveis: Flyway CLI e Flyway Installer.
Vamos incluir as duas no nosso agente.
Primeiro a tarefa Installer, onde devemos indicar a versão que queremos do nosso Flyway.
E depois, a tarefa CLI, onde vamos selecionar o comando info e vou indicar 3 variáveis a nossa tarefa: JDBC, password e user.
E vamos ir na aba Variables e criar as nossas variáveis.
E estamos prontos para rodar. Vamos alterar o nome do nosso pipeline, salvar e criar o nosso primeiro release.
E vamos aguardar a execução.
E criou o release com sucesso!
Vamos ir em Logs.
E vamos ir no log do flyway info.
o Flyway nos avisou que o primeiro script foi perdido e o segundo esta pendente para execução.
Vamos fechar o log, editar o Release Pipeline e ativar a trigger de Continuous Deployment.
E habilitar a trigger, incluindo a branch master.
Vamos salvar e ir no Repos > Files. Vamos fazer upload do nosso primeiro script na pasta scripts.
Vamos ir em Pipelines > Release e veja que o nosso segundo release ja foi iniciado.
Depois de executa-lo, vamos novamente no log e verificar flyway info.
E agora sim. O flyway identificou que o primeiro script rodou e estamos apenas pendente do segundo script.
Vamos editar o nome do nosso estagio.
E também editar o agent job do stage.
Migração pelo Azure DevOps
Podemos clonar a tarefas flyway info e alterar o command para migrate, ficando como a imagem abaixo.
E agora, podemos salvar e gerar mais um release.
E gerou com sucesso. Podemos ir no Log e na tarefa flyway migrate.
E vemos que executou com sucesso o nosso segundo script.
E podemos conferir no Query Editor no nosso Azure SQL Database.
SELECT TOP (1000) * FROM [dbo].[Customers]
E lá está os 2 Customers adicionado no segundo script executado no Flyway diretamente do Release Pipeline do Azure DevOps.
:)
Top comments (2)
Como eu utilizaria o comando baseline para o caso de já ter um bd criado?
Oi, não sei se entendi sua pergunta. Mas o baseline tu pode chamar com flyway baseline.
Não tem muito segredo não.
flywaydb.org/documentation/usage/c...