Atualização¶
Uma nova versão é sempre extraída para um diretório separado. Não deve ser copiada por cima da
instalação existente nem extraída diretamente nela. O novo update.sh atualiza depois exatamente
a instância indicada como argumento.
Preparação e cópia de segurança¶
Antes de cada atualização, deve existir uma cópia de segurança completa e verificada. Inclui pelo menos:
O diretório completo da instância, em especial
core/config/QisutuConfig.pmvar/secure/security.keyA base de dados
Personalizações próprias do Apache, proxy, TLS e systemd
Se necessário, anexos externos ou localizações de armazenamento ligadas
security.key é indispensável para restaurar segredos encriptados de correio, OAuth e
autenticação de dois fatores. Guarde-o protegido juntamente com a cópia de segurança correspondente
da instância.
Preparar o novo pacote da aplicação¶
Extraia o pacote Qisutu 2.0.2 para um diretório temporário separado, não para a instância em execução. Em seguida, aceda ao diretório extraído que contém update.sh. O exemplo utiliza a estrutura descrita em INSTALL.md; ajuste o caminho à localização real da extração.
cd /tmp/qisutu-neue-version/qisutu
Iniciar atualização¶
Instância de produção:
sudo ./update.sh /opt/qisutu
Instância adicional:
sudo ./update.sh /opt/qisututest
O atualizador lê var/install/instance.conf e apresenta antes da confirmação o caminho de
instalação, o identificador da instância, o caminho Web, a base de dados e o serviço systemd.
Cancele se algum desses valores não corresponder à instância pretendida.
Processo de atualização¶
O script executa, entre outros, os seguintes passos:
Verificação das somas de controlo da versão, versões, ficheiro de esquema, sintaxe Perl e registo de programas.
Criação opcional de um dump adicional da base de dados. Verifique antes o espaço livre em
/var/backups.Ativação do modo de manutenção, paragem do daemon da instância e bloqueio de novas recolhas de correio.
Atualização de todos os ficheiros de programa geridos pela versão; são adicionados novos ficheiros e removidos ficheiros geridos que já não são publicados.
Preservação dos ficheiros locais da instância, configurações, registos, dados de execução e chave de segurança.
Comparação do esquema da base de dados e execução de todas as migrações SQL e Perl ainda não registadas.
Nova verificação do estado de destino e arranque do daemon.
Verificação posterior¶
Após a conclusão bem-sucedida, verifique:
systemctl status qisutu-daemon.service
journalctl -u qisutu-daemon.service --since today
Em seguida, inicie sessão, verifique as versões apresentadas do Qisutu e da base de dados e teste pelo menos o início de sessão, a vista de tickets, a recolha e o envio de e-mails. Com várias instâncias, esta verificação é efetuada separadamente para cada instância atualizada.
Atualização falhada¶
Não execute o script repetidamente sem analisar a causa. Guarde a saída e os registos, verifique o espaço livre, o acesso à base de dados, as permissões dos ficheiros e o estado do serviço. Se o estado não for claro, restaure em conjunto a cópia de segurança completa previamente verificada do diretório do programa e da base de dados.
Atualização para 2.0.2¶
O programa e a base de dados passam para 2.0.2; a API interna permanece 1.0. A sincronização adiciona chat interno, presença nos tickets, agendamentos de relatórios com destinatários e registos, relações serviço-CI, anexos FAQ e referência opcional de processo nos formulários. Essas adições não excluem dados existentes.
Use o update.sh do novo pacote para a instância explicitamente escolhida. Atualizar as fontes Sphinx ou executar build-all.bat não atualiza o Qisutu nem a base de dados.
O atualizador não cria um cópia de segurança automática dos ficheiros de programa. Antes, deve existir uma cópia de segurança completa da instância e da base de dados, incluindo var/secure/security.key. Se houver falha após iniciar alterações, a manutenção permanece ativa. Corrija a causa e repita a mesma atualização; não sobrescreva ficheiros isolados do programa ou da base de dados indiscriminadamente.
Verifique versões, início de sessão, e-mail, chat e transferência, envio de relatório, transferência de um anexo FAQ e relações serviço-CI. Teste processos de formulário apenas com KimProcesses instalado e ativado.