Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Versionamento Banco de Dados

No description
by

Thiago Lage

on 11 March 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Versionamento Banco de Dados

Versionamento de Banco de Dados
Situação atual
Não exite um controle de scripts aplicados ao banco

Não existe garantias de que os bancos estão estruturalmente iguais

Não existe versionamento do banco de dados
Processo
No pocesso atual, os desenvolvedores/lideres são responsáveis por atualizar o banco de desenvolvimento e gerar scripts para serem aplicados pelos dbas nos demais bancos.
Automação
Testes automatizados
Como a atualização de banco é manual, fica impraticável utilizar testes automatizados para validar o build no jenkins, pois poderiam ocorrer falsos erros devido ao delay de atualização do banco.
Com isso não há garantia que a ordem de aplicação dos scripts será a mesma, podendo causar erros na sua aplicação.
Todo o processo de atualização do banco é feito manualmente, tanto pelos desenvolvedores como pelos dbas.
O que é ?
Flyway é uma entre várias ferramentas de database migration. E possui API java e integração com o Maven.
Database Schema Migration
Como funciona ?
Linha de comando:
Maven:
Processo
Banco DEV
Banco Teste
Banco Junit
Desenvolvedor gera o script e coloca na pasta do projeto para que o flyway aplique no banco
O script é comitado no SVN, seguindo o padrão de nomenclatura:

vAAAAMMDDHHMM.VER__MANTIS.sql
ex: v201402141230.1.9.0__31233.sql
O jenkins, utilizando o flyway, atualiza os bancos de teste, seguindo a mesma ordem que foi utilizada na aplicação dos scipts no desenvolvimento
Graças a rastreabilidade da aplicação dos scripts, é possível saber exatamente a situação, e diferença entre os bancos
Banco Desenvolvimento:
Banco de Teste
Principais Vantagem
Atualizações deterministicas das versões do banco
Rastreabilidade de alterações
Automação da aplicação de scripts
Garantia da ordem de aplicação
Garantia de que o script aplicado é exatamente o mesmo que está no repositório
Permite a construção de um ambiente confiável para testes automatizados
Principais Desvantagens
Para o funcionamento do processo corretamente, é necessária a colaboração dos desenvolvedores ou ser feita uma restrição maior de acesso aos bancos
O ideal é utilizar não só no ambiente interno da axxiom, como também para atualizar homologação e produção, e assim ter a rastreabilidade completa
Não é possível fazer rollback de versões já aplicadas
A transação é por script, então pode ocorrer de uma versão ser aplicada parcialmente
Não é possível ter interdependência entre scripts de bancos de dados diferentes, ex.: procedures do OP que dependem de views do GE
?
Full transcript