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.pm

  • var/secure/security.key

  • A 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:

  1. Verificação das somas de controlo da versão, versões, ficheiro de esquema, sintaxe Perl e registo de programas.

  2. Criação opcional de um dump adicional da base de dados. Verifique antes o espaço livre em /var/backups.

  3. Ativação do modo de manutenção, paragem do daemon da instância e bloqueio de novas recolhas de correio.

  4. 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.

  5. Preservação dos ficheiros locais da instância, configurações, registos, dados de execução e chave de segurança.

  6. Comparação do esquema da base de dados e execução de todas as migrações SQL e Perl ainda não registadas.

  7. 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.