Projeto

Geral

Perfil

Ações

2.4.3 - Scripts de Banco de Dados

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.
Frameworks como o Laravel (Php) e Django (Python), possuem versionador próprio com comportamento semelhante a do Liquibase e podem ser utilizados sem problema.

2.4.3.1 - Liquibase

O Liquibase pode ser dividido nos seguintes componentes:

  • Changeset: é 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;
  • Changelog: é 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.
  • Mudanças: 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.

2.4.3.1 - Nomenclatura de tabelas

Devem-se ter:

  • Comentários de tabela e de atributo
  • Tabelas com nome significativo para o negócio

Atividades do Líder de Projeto

Considerando que o projeto já foi aprovado e designado a um líder de projeto:

  1. Solicitar a fábrica de software a entrega dos artefatos Dockerfile, Docker Compose, scripts de build, deploy e banco de dados;

Referências

[1] Liquibase: Source control your database: http://www.liquibase.org/
[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/
[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/

Atualizado por Redmine Adminaproximadamente 6 anos · 1 revisões