Script e atualização do Banco
Boa noite pessoal!
Bom, estou em dúvidas em como proceder com a atualização de um sistema desenvolvido em Delphi e Interbase, ambos versão 7. Quando falo em atualização, quero dizer atualização do Banco. Por exemplo (hipotético), tenho uma tabela chamada TESTE, com os campos CODIGO INTEGER NOT NULL e NOME VARCHAR(5) NOT NULL, e preciso incluir mais dois campos TESTE1 e TESTE2, ambos INTEGER NOT NULL e alterar o tipo do campo NOME para VARCHAR(45).
Qual a melhor maneira de fazer o controle? Guardando o schema do Banco por versões do aplicativo? Existe algum software que faça isso?
Att.
Bom, estou em dúvidas em como proceder com a atualização de um sistema desenvolvido em Delphi e Interbase, ambos versão 7. Quando falo em atualização, quero dizer atualização do Banco. Por exemplo (hipotético), tenho uma tabela chamada TESTE, com os campos CODIGO INTEGER NOT NULL e NOME VARCHAR(5) NOT NULL, e preciso incluir mais dois campos TESTE1 e TESTE2, ambos INTEGER NOT NULL e alterar o tipo do campo NOME para VARCHAR(45).
Qual a melhor maneira de fazer o controle? Guardando o schema do Banco por versões do aplicativo? Existe algum software que faça isso?
Att.
Michaell
Curtidas 0
Respostas
Fsflorencio
23/09/2004
Olá Michael,
O que faço é o seguinte:
O sistema tem que ter a capacidade de rodar scripts sql.
Junto com os arquivos sql coloco um arquivo chamado versao.ver, contendo a versão, ex: ´1.0.3´.
Após rodar os scripts ele lê este arquivo versao.ver e grava no campo rdb$description da tabela de sistema rdb$database que é do tipo blob.
Então toda vez que vou mandar um script para algum cliente pergunto:
Qual a versão que aparece na tela do seu programa? (o sistema tem que carregar o conteúdo do campo rdb$description no sistema)
Então eu preparo os scripts junto com o arquivo de versão e mando o kra rodar.
O pior que pode acontecer é ele rodar os scripts com os usuários conectados ocorrendo falhas do tipo ´esta tabela está em uso´. Aí vc deve fazer um script reparador, mas o ideal é evitar que os usuários estejam conectados.
Desta maneira tenho o controle da versão do sistema e da versão do Banco de Dados.
[]´s
O que faço é o seguinte:
O sistema tem que ter a capacidade de rodar scripts sql.
Junto com os arquivos sql coloco um arquivo chamado versao.ver, contendo a versão, ex: ´1.0.3´.
Após rodar os scripts ele lê este arquivo versao.ver e grava no campo rdb$description da tabela de sistema rdb$database que é do tipo blob.
Então toda vez que vou mandar um script para algum cliente pergunto:
Qual a versão que aparece na tela do seu programa? (o sistema tem que carregar o conteúdo do campo rdb$description no sistema)
Então eu preparo os scripts junto com o arquivo de versão e mando o kra rodar.
O pior que pode acontecer é ele rodar os scripts com os usuários conectados ocorrendo falhas do tipo ´esta tabela está em uso´. Aí vc deve fazer um script reparador, mas o ideal é evitar que os usuários estejam conectados.
Desta maneira tenho o controle da versão do sistema e da versão do Banco de Dados.
[]´s
GOSTEI 0
Gandalf.nho
23/09/2004
Qual a paleta de componentes que você usa para acessar o banco? Se for IBX, existe o componente IBScript que poderá usar para rodar seus scripts.
GOSTEI 0