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/ |