Projeto

Geral

Perfil

243 - Scripts de Banco de Dados » Histórico » Versão 1

Redmine Admin, 11/05/2019 22:30

1 1 Redmine Admin
h1. 2.4.3 - Scripts de Banco de Dados
2
3
A ferramenta utilizada no Ministério da Economia para executar scripts no Banco de Dados por meio do processo de build automatizado é o Liquibase para arquiteturas Java ou outra que não possua padrão próprio para o versionamento dos script's de banco.
4
Frameworks como o Laravel (Php) e Django (Python), possuem versionador próprio com comportamento semelhante a do Liquibase e podem ser utilizados sem problema.
5
6
h2. 2.4.3.1 - Liquibase
7
8
O Liquibase pode ser dividido nos seguintes componentes:
9
10
* *Changeset*<notextile></notextile>: é uma transformação aplicada em um banco de dados. Changesets são escritos em XML, numa notação específica do liquibase. O liquibase sabe traduzir esse XML pro SQL de vários SGDBs;
11
* *Changelog*<notextile></notextile>: é um arquivo XML que contém vários changesets, são identificados por uma chave única formada por três elementos: O path do changelog, o autor do patch, e um id. Um changelog pode realizar “include” de outros changelogs.Changelogs não devem ser apagados. A medida que o sistema evolui, o numero de changelogs aumenta. Idealmente, changesets devem ser reversíveis. O liquibase realiza rollback para algumas operações (por exemplo, <createTable>). Para outras, é preciso informar como realizar o rollback. Ao aplicar um changelog no banco, os changesets são executados na ordem em que aparecem nos changelogs.
12
* *Mudanças*<notextile></notextile>: O liquibase armazena em um tabela do banco a chave (path + autor + id) dos changesets que ele já executou, assim, só é executado os changesets que ainda não foram executados. O liquibase armazena também um checksum dos patches executados, e checa na hora de executar se o checksum de patches previamente executados foi alterado. Nesse caso, o comportamento default é interromper a execução com um erro, mas é possível mudar esse comportamento por changeset. O liquibase pode “desaplicar” um changelog no banco: ou seja, executar o rollback dos changesets na ordem inversa.
13
14
h2. 2.4.3.1 - Nomenclatura de tabelas
15
16
Devem-se ter:
17
18
* Comentários de tabela e de atributo
19
* Tabelas com nome significativo para o negócio
20
21
h2. %{color: #7d228d;}Atividades do Líder de Projeto%
22
23
Considerando que o projeto já foi aprovado e designado a um líder de projeto:
24
25
# Solicitar a fábrica de software a entrega dos artefatos Dockerfile, Docker Compose, scripts de build, deploy e banco de dados;
26
27
h3. Referências
28
29
[1] Liquibase: Source control your database: http://www.liquibase.org/
30
[2] O Problema do Versionamento do Banco de Dados, acessado dia 20/05/2016: https://dicasdolampada.wordpress.com/2012/03/15/o-problema-do-versionamento-do-banco-de-dados/
31
[3] Evoluindo o banco de dados com o liquibase, acessado dia 20/05/2016: https://dicasdolampada.wordpress.com/2012/03/19/evoluindo-o-banco-de-dados-com-o-liquibase/