Necessito fazer a atualização do meu sistema automático
Necessito fazer a atualização do meu sistema automática já que hoje é feita manualmente, eu precisaria criar uma rotina onde meu cliente conseguiria facilmente atualizar o executável e os arquivos de Schema e relatórios ou que isso seja feito automaticamente por algum tipo de serviço, e que conseguisse de dentro do meu sistema rodar o script para atualização dos objetos no banco de dados(Oracle).
Se alguém tiver uma ideia e puder me ajudar, agradeço desde já.
Se alguém tiver uma ideia e puder me ajudar, agradeço desde já.
Neto Vieira
Curtidas 0
Melhor post
Luiz Vichiatto
15/10/2019
Olá Neto!
Bom é bem possível que utilize o delphi versões antes da 10, acredito, e tudo é gerado em um único executável (não tem nada de errado, apenas imaginando).
Dei manutenção em um sistema assim e foi um pouco trabalhoso mas valeu, aprendi bastante.
A ideia é atualizar automaticamente, então, no meu caso eu estabeleci um roteiro, pois tinha a facilidade do programa realizava uma conexão com um FTP de forma obrigatória, então tinha um facilitador.
O roteiro que utilizava:
1) ao abrir o sistema ele conectava com o ftp e realizava o download de um arquivo com formato .ini e continha uma linha versao_atual=v100x
2) conferia a versão atual do arquivo e a versão atual do sistema, caso divergente o sistema realizava o download do novo programa(*) do site, endereço especifico com o instalador do programa
3) quando concluído e a confirmação do sucesso do download, a rotina executava um programa secundário que encerrava o programa principal e iniciava a instalação da nova versão.
(*) o novo programa é o pacote de instalação gerado pelo INNO Setup.
Caso queira discutir sobre este item entre em contato.
Espero ter apontado para uma direção na solução do seu problema.
Até, e sucesso!
Att
Bom é bem possível que utilize o delphi versões antes da 10, acredito, e tudo é gerado em um único executável (não tem nada de errado, apenas imaginando).
Dei manutenção em um sistema assim e foi um pouco trabalhoso mas valeu, aprendi bastante.
A ideia é atualizar automaticamente, então, no meu caso eu estabeleci um roteiro, pois tinha a facilidade do programa realizava uma conexão com um FTP de forma obrigatória, então tinha um facilitador.
O roteiro que utilizava:
1) ao abrir o sistema ele conectava com o ftp e realizava o download de um arquivo com formato .ini e continha uma linha versao_atual=v100x
2) conferia a versão atual do arquivo e a versão atual do sistema, caso divergente o sistema realizava o download do novo programa(*) do site, endereço especifico com o instalador do programa
3) quando concluído e a confirmação do sucesso do download, a rotina executava um programa secundário que encerrava o programa principal e iniciava a instalação da nova versão.
(*) o novo programa é o pacote de instalação gerado pelo INNO Setup.
Caso queira discutir sobre este item entre em contato.
Espero ter apontado para uma direção na solução do seu problema.
Até, e sucesso!
Att
GOSTEI 1
Mais Respostas
Neto Vieira
15/10/2019
A parte de baixar o novo executável comparando a versão eu entendi e realmente não é meu maior problema. O que está me quebrando a cabeça é como eu faço para conseguir rodar o Script das alterações do Banco. Sendo que não faço ideia de como fazer isso no Oracle.
Atenciosamente, Neto.
Atenciosamente, Neto.
GOSTEI 0
Luiz Vichiatto
15/10/2019
Hummmm, isto você tem que ter um usuário do tipo 'owner', com permissão para rodar script e grants de banco.
Você fará a conexão com este usuário "root/admin" do banco, executa os scripts, que estará no código do programa secundário ou criptografadas, execute os scripts, e de as permissões necessárias para todos os usuários.
E pronto. (Nossa parece simples :D:D:D:D)
Requer testar, testar e testar, até encontrar um padrão específico.
Você terá que se utilizar um segundo programa para isto, o mesmo programa não consegui, devido ao fato que o atualizador/instalador ficava acusando que ainda estava em execução.
Você fará a conexão com este usuário "root/admin" do banco, executa os scripts, que estará no código do programa secundário ou criptografadas, execute os scripts, e de as permissões necessárias para todos os usuários.
E pronto. (Nossa parece simples :D:D:D:D)
Requer testar, testar e testar, até encontrar um padrão específico.
Você terá que se utilizar um segundo programa para isto, o mesmo programa não consegui, devido ao fato que o atualizador/instalador ficava acusando que ainda estava em execução.
GOSTEI 0
Neto Vieira
15/10/2019
Sim, mas não quero que meu cliente tenha acesso o banco diretamente, quero que ele importe um arquivo com os scripts dentro do meu sistema e atualize no banco de dados. Não tenho ideia de com fazer meu sistema importa direto para dentro do oracle o script.
GOSTEI 0
Luiz Vichiatto
15/10/2019
Sim, mas não quero que meu cliente tenha acesso o banco diretamente, quero que ele importe um arquivo com os scripts dentro do meu sistema e atualize no banco de dados. Não tenho ideia de com fazer meu sistema importa direto para dentro do oracle o script.
Se você passou ao cliente todas as definições de cada arquivo para importação tem que ser gerado, você pode fazer a importação por 'bulk insert' (pesquise sobre o assunto).
https://www.devmedia.com.br/como-importar-dados-para-o-sql-server-usando-o-bulk-insert/6009
GOSTEI 0
Neto Vieira
15/10/2019
Dei uma olhada porem com o Oracle é diferente a questão do Bulk Select.
GOSTEI 0
Luiz Vichiatto
15/10/2019
Dei uma olhada porem com o Oracle é diferente a questão do Bulk Select.
Acredito que a linha para sua solução pode passar por este caminho, dentro do sistema você terá que avaliar se vai ser viável ou não.
Implementar não deve ser o problema, agora se financeiramente vai valer a pena é outra cosia.
Você pode criar um módulo, ou utilizar ferramenta de ETL, ou desenvolva como um outro programa. Estamos ultrapassando para área da especulação de como pode ser, e já está fora do que você quer, mas idéias não vão faltar.
Espero ter ajudado.
Att
Bons códigos!
GOSTEI 0