COMO ATUALIZAR BASE DE DADOS DE CLIENTES SEM CORROMPER OS DADOS EXISTENTES

MySQL

04/06/2012

Boa noite pessoal ...

Estou a dias analisando a melhor forma de estar criando uma solução para atualizar bases de dados de meus clientes via download ...
Ou seja, tenho um .exe que o usuario de meus aplicativos executa,verifica se há nova versao e caso exista é disponibilizado o download do novo .exe de meu aplicativo.
Porem, neste download contem somente o .exe da nova versao do programa, e portanto preciso ainda caso haja mudanças no BD, conectar no cliente e atualizar a base de dados cliente por cliente.
Pensei na hipótese de juntamente com o novo executavel de meu programa colocar um script sql onde irá atualizar a base de dados, mas ai ainda nao é oq eu quero pq assim terei q estar sempre atento no script do banco para qualquer alteração no banco e ainda, nas versoes q o cliente pode ou nao baixar, pois uma vresao terá um script e outra versao poderá ter outro script.
O mais correto seria independente da versao q o usuario estiver usando eu possuir um script do banco q fará toda análise de estrutura e assim criando, alterando campos e tabelas ... claro q sem corromper os dados.

E é isso.
Muito agradecido.
Diego Ribas

Diego Ribas

Curtidas 0

Respostas

Eduardo Gonçalves

Eduardo Gonçalves

04/06/2012

Você diz mudanças na estrutura do BD (tipo um novo campo criado?). Uma solução seria, após o seu cliente receber o novo executável, quando ele logar pela primeira vez (só na primeira vez), rodar um script para atualizar o banco. Esse script pode ser embutido dentro do próprio .exe, ou colocado em um XML, ou alguma outra forma. O mais importante é garantir que (i) ele seja executado apenas uma vez, no primeiro login e (ii) implementar uma rotina para certificar que nenhuma falha ocorreu na execução do script.

Att.,

Eduardo
GOSTEI 0
Diego Ribas

Diego Ribas

04/06/2012

Certo ...

O meu problema é na seguinte situação ...

Digamos q existe uma nova versão mas o cliente não atualizou o programa, onde esta atualização que ele não fez, tinha um script que atualizava alguns campos no banco, e então ele somente fez a atualização seguinte a que ele não atualizou, ou seja, tinha uma atualização que ele não fez, que continha um script p o banco, e pulou para a seguinte atualização, que neste caso ja teria outro script...

O programa ficaria com pau de conexão, pois poderá faltar campos, ou triggers,procedures etc.
GOSTEI 0
Diego Ribas

Diego Ribas

04/06/2012

No meu ver, o ideal seria um tipo de comparer, que iria comparar todos os campos,tabelas,triggers e procedures identificando qualquer distinção e identificado a diferença ou inexistencia, iria atualizar ou criar tal campo,procedure ou triggers etc.
GOSTEI 0
POSTAR