1. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
Liquibase
DOJO
2. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
DROPS
http://cwisoftware.github.io/drops/evolucao-de-banco-de-dados-na-integracao-continua
3. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
Application Code
Como fazer isso para banco de dados?
4. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
• Gerenciar scripts
• Documentação
• Permitir branches e merges
• Evitar erros de execução de scripts
• Otimizar o deploy
• Facilitar o rollback
• Validações
• Regras por contexto
• Outras ferramentas
• Database novo ou existente
Liquibase
5. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
• Premissas
• DB deve estar criado
• Login com permissão para criar objetos
• Case sensitive
• UTF-8
Liquibase
6. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
• Changelogs
• Changesets
• Databases
• Lib
• Changelog-master.xml
• Database.ps1
• README.md
Liquibase - Estrutura
7. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
• Estrutura
• ChangeSet com arquivo SQL
• ChangeSet com notação XML
• ChangeSet SQL InLine
• Comandos
• Validar o changelog
• liquibase --defaultsFile=databases/dsv.properties --changeLogFile=changelog-master.xml validate
• Verificar status
• liquibase --defaultsFile=databases/dsv.properties --changeLogFile=changelog-master.xml status
• Atualizar banco
• liquibase --defaultsFile=databases/dsv.properties --changeLogFile=changelog-master.xml update
Scripts da versão 1.0.0
8. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
• runAlways
• Context
• loadData
• loadUpdateData
Scripts da versão 2.0.0
9. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
• Plug-in LiquiBaseRunner
Liquibase & CI
10. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
Linha de Comando
Liquibase & CI
11. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
Corrigindo o Checksum Alteram um changeset
já aplicado!
12. São Paulo - Rio de Janeiro - Porto Alegre - São Leopoldo - Caxias do Sul
Obrigado
Giovani Decusati
giovani@cwi.com.br
Saber o autor, data e hora da execução do script, o momento em que ele foi aplicado;
É possível colocar comentários nos arquivos;
Devido a sua estrutura ser baseada em arquivos textos (XML, YAML, JSON e SQL);
O versionamento do schema é feito pela própria ferramenta então ela identifica quais scripts devem ser rodados;
A aplicação dos scripts é executada com apenas uma linha de commando evitando horas e horas de um DBA;
Para cada instrução SQL é possível escrever uma rotina de Rollback;
É possível validar a estrutura e testar a execução dos scripts Rollout e rollback;
Executar determinados scripts apenas em um ou outro ambiente;
Ela pode ser usada com outras ferramentas para complementar a parte de gestão de banco de dados (EX. VSUTIO DataBase);
Funciona para qualquer banco novo ou já existente;