2009/4/15 Carlos Humberto <[email protected]>

>
> Porém, com o andar da carruagem as vezes são feitas algumas alterações na
> estrutura do BD.
> Por exemplo, o sistema vai requerendo novas exigências e novos campos são
> adicionados a uma tabela.
> Então eu preciso replicar essas alterações para o servidor web.
> Mas as vezes não lembro as alterações que foram feitas no ambiente local,
> para replicar para o web, e acabo tendo que ficar comparando as duas
> tabelas
> (local e web).
>
> Como já tem dados na tabela da web, não tem como eu recriar a tabela da web
> senão eu perderia os dados.
>
> Existe uma solução para esse problema ?
>

Existem varias solucoes. Ha' varias ferramentas que tentam procurar pelas
diferencas do schema de dois bancos. O que eu utilizo e' o SQL Manager [1],
que e' um conjunto de ferramentas para lidar com PostgreSQL, desde uso
diario, ate' administracao, etc. Note-se que e' proprietario e para Windows,
mas funciona muito bem sob Wine/Crossover.

A melhor solucao que eu ja' encontrei, entretanto, foi simplesmente
disciplina no desenvolvimento. Meus programadores tem uma versao local do
banco, e toda e quaisquer alteracoes de estrutura sao adicionadas a um
arquivo .sql especifico para a versao do software a ser lancada, que e'
mantido em controle de revisao (subversion).

Pelo menos uma vez por semana, ou mais frequentemente, todos os
programadores tem que sincronizar seus bancos locais com o banco oficial de
desenvolvimento, que por sua vez e' construido da seguinte maneira:

1) Drop o banco de desenvolvimento
2) Carrega-se copia do banco producao
3) Aplica-se as mudancas no arquivo de deployment.sql para a versao do
software a ser lancada

Dessa maneira se um programador esqueceu de adicionar algo ao arquivo de
mudancas, vai quebrar rapido e ele vai poder corrigir o problema.

Mudancas na estrutura do banco de dados associadas a um bug especifico
passam por um processo parecido, onde e' criado um arquivo .sql com o numero
do ticket registrado no bug tracker.

Se esse processo e' seguido -- e eu sempre implemento esse processo -- nao
tenho nenhum problema. Nenhuma dor de cabeca na hora de lancamento de nova
versao do software tentando descobrir se as mudancas estao certas ou na
ordem correta, por que 1) as mudancas foram feitas por humanos enquanto o
trabalho estava fresco na cabeca, 2) as mudancas foram testadas varias vezes
antes do lancamento.

Roberto

[1] SQL Manager Studio:
http://www.shareit.com/product.html?productid=300077570&affiliateid=200077033
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a