2008/6/12 Roberto Mello <[EMAIL PROTECTED]>:

> O que eu faco na nossa aplicacao e' que mantemos as alteracoes ao BD
> no subversion, dentro de diretorios das respectivas versoes `as quais
> as alteracoes pertencem.

Aqui tocou num ponto interessante.

Não consegui ainda alcançar um estágio de maturidade nessa "coisa" de
versionamento de DDL. Basicamente o que fazemos normalmente é
versionar models (do mvc) e depois reconstruir a estrutura do banco a
partir dessas classes (vide Rails::Migrations).

O problema desse método é precisar manter o modelo de dados de acordo
com  as deficiências do active record para funcionar o versionamento.

Outras ferramentas utilizadas foram ggetddl[1], mdb2schema [2] e uma
versão modificada de SQL::Fairy [3]. Sinceramente, nenhuma trabalha de
forma a atender 100% das necessidades.

> O banco de dados tem uma pequena tabela que indica a versao atual.
> Para fazer o upgrade basta verificar qual a versao atual, e rodar os
> scripts de atualizacao posteriores, dentro de blocos transacionais.

> Funciona muito bem.

Funciona de acordo com a disciplina dos desenvolvedores, e diga-se de
passagem, desenvolvedores (eu sou um) não costumam ter tamanha
disciplina. :-)

Penso em construir algo bem simples, como é utilizar um VCS.

Voce altera o banco, ele faz a diferença entre duas definições e gera
o DDL necessário, versionando uma versão anterior também em um formato
que seja aplicável ao banco.

Vejam bem, o que estou falando é em um sistema que *versione* DDLs e
não que apenas façam o diferencial deles como é o caso do apgdiff, por
exemplo.

Acreditem, não é tão fácil quanto parece, embora que a defnição seja
bem simples.

[1] https://labs.omniti.com/trac/pgsoltools/wiki/getddl
[2] http://pear.php.net/package/MDB2_Schema/
[3] http://sqlfairy.sourceforge.net/

Um abraço!

-Leo
-- 
Leonardo Cezar
http://pgcon.postgresql.org.br
http://www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a