Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Aprendiz/CE

Como fazer um auto-update do banco de dados do aplicativo?

Recommended Posts

Prezados,

Como fazer um auto-update do banco de dados do aplicativo? Já tenho uma rotina que faz isso para o executável, mas eventualmente tenho que fazer alguma alteração na estrutura da tabelas do sistema e isso é feito manualmente. Acho isso nada PROFISSIONAL!

Grato e aguardo qualquer tipo de ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, tudo bem?

 

Não sei se compreendi muito bem a sua necessidade. No caso, você diz quando precisar alterar alguma coisa relacionada a estrutura do seu banco de dados?

 

Por exemplo:

 

Para a próxima versão do sistema, foram adicionadas as colunas A, B e C na tabela teste, sendo:

 

A = varchar(10) not null;

B = numeric(12,2);

C = integer;

 

Ai pelo que entendi, você queria uma forma de automatizar isso?

 

Se for, uma das maneiras poderia ser:

 

1- Você distribuir junto com o executável um arquivo .sql com as instruções de alteração pra as tabelas que você precisa.

 

2- Quando o sistema for executado a primeira vez, você lê o conteúdo desse arquivo e trata os comandos para serem executados de acordo com a sua necessidade.

 

3- Se não houver nenhum erro ao final da leitura desse arquivo, você apaga, caso contrário o mantem e gera um log com a linha exata aonde ocorreu o problema.

 

Obs: A única coisa que eu faria trabalhando dessa maneira, é executar o aplicativo a primeira vez direto pelo servidor, para que as atualizações sejam realizadas antes que algum terminal execute sua aplicação e tente simultaneamente executar as atualizações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, tudo bem?

 

Não sei se compreendi muito bem a sua necessidade. No caso, você diz quando precisar alterar alguma coisa relacionada a estrutura do seu banco de dados?

 

Por exemplo:

 

Para a próxima versão do sistema, foram adicionadas as colunas A, B e C na tabela teste, sendo:

 

A = varchar(10) not null;

B = numeric(12,2);

C = integer;

 

Ai pelo que entendi, você queria uma forma de automatizar isso?

 

Se for, uma das maneiras poderia ser:

 

1- Você distribuir junto com o executável um arquivo .sql com as instruções de alteração pra as tabelas que você precisa.

 

2- Quando o sistema for executado a primeira vez, você lê o conteúdo desse arquivo e trata os comandos para serem executados de acordo com a sua necessidade.

 

3- Se não houver nenhum erro ao final da leitura desse arquivo, você apaga, caso contrário o mantem e gera um log com a linha exata aonde ocorreu o problema.

 

Obs: A única coisa que eu faria trabalhando dessa maneira, é executar o aplicativo a primeira vez direto pelo servidor, para que as atualizações sejam realizadas antes que algum terminal execute sua aplicação e tente simultaneamente executar as atualizações.

 

Olá Eisenheim,

 

Você entendeu perfeitamente o que necessito.

 

Pois é, eu já faço as coisas dessa forma, mas só não sei como eu poderia associar o arquivo executável ao script que consta as devidas alterações do banco de dados.

 

Comentário:

Os meus aplicativos verificam no servidor remoto se existe uma nova versão do mesmo, daí compara a data da criação de ambos (local e remoto), caso as datas não sejam iguais o "download" é feito e o novo executável se sobrepõe ao anterior. O problema é "baixar/receber" o script para o banco de dados nesse momento junto com o novo executável. Entendeu? Os aplicativos também já identificam e executam qualquer script com a extensão SQL que for colocado dentro de sua pasta base. Essa parte é que eu acabo tendo que fazer, ou seja, enviar o script para a pasta do sistema antes do mesmo ser executado e assim evitar erros de execução.

 

Grato pela sua atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo!

 

 

 

Pois é, eu já faço as coisas dessa forma, mas só não sei como eu poderia associar o arquivo executável ao script que consta as devidas alterações do banco de dados.

 

Confesso que não compreendi bem essa "associação" a qual você se refere. Conseguiria exemplificar para que eu possa tentar lhe ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo!

 

 

Confesso que não compreendi bem essa "associação" a qual você se refere. Conseguiria exemplificar para que eu possa tentar lhe ajudar?

 

Olá, Bom Dia!

 

"Associação" seria só modo de falar!

 

O meu problema é "associar" os arquivos (executável/scripts SQL) há um só "download". Seria isso! Pensei em compactar tudo em um só arquivo, mas na hora de comparar a nomenclatura do executável local não iria bater com a do executável remoto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo!

 

Você já tentou trabalhar com as informações da propriedade Version Info que fica nas opções do projeto? Eu acredito que seria uma alternativa interessante. De uma pesquisada em como recuperar as informações dessa propriedade. Existem também, componentes específicos com essa funcionalidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo!

 

Você já tentou trabalhar com as informações da propriedade Version Info que fica nas opções do projeto? Eu acredito que seria uma alternativa interessante. De uma pesquisada em como recuperar as informações dessa propriedade. Existem também, componentes específicos com essa funcionalidade.

 

Olá,

 

Eu já tentei de tudo, mas o meu problema é a questão de alterar o DB quando necessário.

 

Grato pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigos....Boa noite....

Tive uma ideia aki, Vê se cola..rsrsr

Criar um arquivo INI ex:

[UPDATE]
Status=1

Quando o usuário for logar no sistema...no Create do form vc manda ler o INI e se o status for 1 ,vc manda ler uma determinada procedure que execute a alteração do banco de dados e depois grava o INI, status =0

E manda fazer o upgrade do aplicativo...ai quando vc for fazer a atualização do seu sistema ,vc vao mandao o executavel e o INI...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso não daria certo. A questão é que a aplicação roda em rede, dai quem atualizasse o aplicativo acabaria executando a alteração do banco de dados e conseguentemente gerando um erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.