Para administradores
← Todos os tópicos

Atualizar pela linha de comando

./draften update sem interrupção, verificar um pacote, voltar à versão anterior ou a uma mais antiga e um servidor sem internet.

Quando o updater está rodando na instalação, atualizar pela interface é o mais prático – Atualizar com o updater descreve isso. Aqui está o mesmo procedimento pela linha de comando; ele sempre funciona, com o updater ou sem ele. Todos os comandos rodam no diretório da instalação.

Atualizar para uma nova versão

Cada release é um novo pacote. Ou você o passa diretamente ao comando:

./draften update --bundle /path/to/draften-<new version>.tar

ou o copia para a pasta updates/ e executa:

./draften update <new version>

A atualização não causa interrupção e segue passo a passo:

  1. confere o pacote com as chaves da release instalada – antes de usar qualquer coisa dele,
  2. salva um dump do banco de dados em backups/ (os três últimos são mantidos; o número é definido por DRAFTEN_BACKUPS no .env),
  3. executa as migrações do banco de dados,
  4. substitui os workers,
  5. inicia a nova versão da web ao lado da que está atendendo e muda para ela assim que estiver saudável.

Se a nova versão não ficar saudável, nada é trocado e a anterior continua atendendo.

Um pacote também pode ser conferido sem ser instalado:

./draften check draften-<new version>.tar

Depois de atualizar

./draften status

mostra qual cor da web está atendendo, a versão e a saúde das duas cores e dos workers, o status do HTTPS e os dumps do banco de dados. Na página Operação os workers dão sinal e o veredito é “a capacidade é suficiente”. O que a release mudou está no arquivo NOTES.md.

Voltar para a versão anterior

A versão que atendia antes da atualização continua rodando, sem tráfego. Você muda para ela na hora:

./draften rollback

Isso funciona porque o banco de dados continua legível também para a versão anterior.

Voltar para uma versão ainda mais antiga

Isso só é possível restaurando um dump do banco de dados. Cada dump em backups/ traz no nome a versão que estava rodando quando ele foi feito:

docker compose stop worker
gunzip -c backups/<time>-<version>.sql.gz | docker compose exec -T db sh -c 'mariadb -uroot -p"$MARIADB_ROOT_PASSWORD"'
./draften update <version> --no-backup

Tudo o que aconteceu no draften depois que o dump foi feito se perde.

Um dump de antes da troca da chave de criptografia só abre com a chave anterior, MASTER_KEY_PREVIOUS no .env. Veja Backup e restauração.

Uma máquina sem internet

O updater baixa as novas releases com a chave da licença. Uma máquina sem internet não baixa nada: copie o pacote para updates/ e atualize com ./draften update <version> – ou o updater o oferece a você a partir dali, na interface.

O que não muda sozinho

Versão em texto