Fórum Atualizar estrutura Banco de Dados automaticamente #417116

21/05/2012

0

Preciso implementar na minha aplicação uma função que verifica a versão do Banco de Dados e se a versão for antiga executar script para fazer a atualização do banco.

Pensei em criar uma entidade onde armazeno a versão atual do banco de dados e toda vez que o sistema for executado ele compara esta versão, se estiver defasada a aplicação roda essa rotina que cria os determinados campos para as diferentes tabelas atraves de scripts e ao final gravo o numero da versão atual na entidade parâmetros. Com isso não preciso ficar manipulando base de dados, o próprio sistema é quem faz isso para mim de forma automática.

Entenderam???

Aguardo contato
Iramar Junior

Iramar Junior

Responder

Posts

21/05/2012

Joel Rodrigues

Bom dia.
Na última empresa na qual trabalhei, isso era feito exatamente da forma como você falou. O único ponto que eu não achei interessante é que o código SQL era escrito totalmente dentro do programa. Eu, particularmente, optaria por manter os scripts em arquivos externos (em um FTP, por exemplo, ou mesmo em uma pasta qualquer). Ao verificar a versão, você buscaria pelo respectivo arquivo, carregaria seu conteúdo, e executaria.
Isso é o básico, você poderia ver qual a forma mais segura de fazer isso. Por exemplo, para não manter os scripts acessíveis ao cliente, você deve apagar os arquivos após a execução (por isso sugeri o FTP).

Boa sorte.
Responder

Gostei + 0

21/05/2012

Iramar Junior

Bom dia.

Concordo com vc, nao quero deixar os codigo SQL dentro do programa, pq isso fica complicado, pois toda vez que houver uma alteracao no BD tera que atulizar o EXE primeiro. O correto é criando arquivos SQL externos como mencionou....

Teria alguma funcao ou rotina para me auxiliar...

Bom dia.
Na última empresa na qual trabalhei, isso era feito exatamente da forma como você falou. O único ponto que eu não achei interessante é que o código SQL era escrito totalmente dentro do programa. Eu, particularmente, optaria por manter os scripts em arquivos externos (em um FTP, por exemplo, ou mesmo em uma pasta qualquer). Ao verificar a versão, você buscaria pelo respectivo arquivo, carregaria seu conteúdo, e executaria.
Isso é o básico, você poderia ver qual a forma mais segura de fazer isso. Por exemplo, para não manter os scripts acessíveis ao cliente, você deve apagar os arquivos após a execução (por isso sugeri o FTP).

Boa sorte.
Responder

Gostei + 0

21/05/2012

Joel Rodrigues

Dá uma olhada nessa função para baixar arquivos do FTP: http://www.swissdelphicenter.ch/en/showcode.php?id=1095

A minha ideia era que você gravasse os arquivos com a identificação da versão, por exemplo: 1.txt, 2.0.txt, 3.1.sql, etc...
Você pode usar um TextFile ou StringList para carregar o arquivo, passar para um componente que execute o script e depois apagar o arquivo.

Eu infelizmente não tenho nenhuma rotina pronta pra te passar, apenas ideias e sugestões.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar