Atualizando o Weblate

Atualizações de imagem Docker

A imagem oficial do Weblate no Docker (consulte Instalando a usar Docker) integra todas as etapas de atualização. Normalmente, não é necessária nenhuma interação manual além de obter a versão mais recente (ou pelo menos a mais atual).

Instruções genéricas de atualização

Sempre procure por novas alterações em Requisitos de software antes de fazer a atualização. Depois que todos os requisitos forem instalados ou atualizados, verifique se o settings.py corresponde às alterações na configuração (consulte settings_example.py para obter os valores corretos).

Always check Instruções específicas da versão before upgrading. If you are skipping any versions, be sure to follow instructions for all versions you are skipping during such upgrade. It’s sometimes better to upgrade gradually to an intermediate version to ensure a smooth migration. Upgrading across multiple releases should work, but is not as well tested as single version upgrades!

Nota

Sempre faça backup completo do banco de dados antes de atualizar, para que possa reverter o banco de dados se a atualização falhar, consulte Fazer backup e mover o Weblate.

  1. Pare os processos WSGI e Celery para evitar que processos antigos continuem em execução durante a atualização. Caso contrário, mudanças incompatíveis no banco de dados podem ocorrer.

  2. Atualização do Weblate

    Para instalações pip, isso pode ser alcançado da seguinte forma:

    uv pip install -U "weblate[all]==version"
    

    Ou, se quiser apenas obter a versão lançada mais recente:

    uv pip install -U "weblate[all]"
    

    Se não quiser instalar todas as dependências opcionais, faça:

    uv pip install -U weblate
    

    Quando usar o checkout do Git, precisa buscar o novo código-fonte e atualizar a sua instalação:

    cd weblate-src
    git pull
    # Update Weblate inside your virtualenv
    . ~/weblate-env/bin/uv pip install -e '.[all]'
    # Install dependencies directly when not using virtualenv
    uv pip install --upgrade -e .
    # Install optional dependencies directly when not using virtualenv
    uv pip install --upgrade -e '.[all]'
    
  3. Novas versões do Weblate podem ter novos Dependências Python, verifique se eles abrangem as funcionalidades que deseja.

  4. Atualize o ficheiro de configuração seguindo settings_example.py ou Instruções específicas da versão.

  5. Atualizar o banco de dados:

    weblate migrate --noinput
    
  6. Colete ficheiros estáticos atualizados (veja Executar o servidor e Servir ficheiros estáticos):

    weblate collectstatic --noinput --clear
    
  7. Compactar ficheiros JavaScript e CSS (opcional, veja Comprimir os ativos do cliente):

    weblate compress
    
  8. Se estiver a executar uma instalação a partir do Git, também deverá gerar novamente os ficheiros de localidade sempre que fizer uma atualização. Pode fazer isto invocando:

    weblate compilemessages
    
  9. Verifique que a sua configuração é sana (ver também Configuração de produção):

    weblate check --deploy
    
  10. Reinicie o worker do Celery (veja Tarefas de fundo a usar o Celery).

Instruções específicas da versão

Alterado na versão 5.0: Instruções específicas da versão agora estão incluídas nas notas de lançamento, consulte Weblate 5.10.

Atualize de uma versão principal mais antiga

Atualizações entre versões principais não são suportadas. Sempre atualize para o nível de patch mais recente da versão principal inicial. As atualizações que ignoram esta etapa não são suportadas e serão interrompidas.

  • Se estiver a atualizar a partir da versão 2.x, sempre atualize primeiro para a versão 3.0.1.

  • Se estiver a atualizar a partir da versão 3.x, sempre atualize primeiro para a versão 4.0.4.

  • Se estiver a atualizar a partir da versão 4.x, sempre atualize primeiro para a versão 5.0.2.

Migrando de outros bancos de dados para o PostgreSQL

If you are running Weblate with a different database than PostgreSQL, consider migrating to PostgreSQL for better performance by doing the following steps. Remember to stop both, the web and Celery servers beforehand, otherwise you might end up with inconsistent data.

Criar um banco de dados no PostgreSQL

Normalmente, é uma boa ideia executar o Weblate num banco de dados separado e numa conta de utilizador separada:

# If PostgreSQL was not installed before, set the main password
sudo -u postgres psql postgres -c "\password postgres"

# Create a database user called "weblate"
sudo -u postgres createuser -D -P weblate

# Create the database "weblate" owned by "weblate"
sudo -u postgres createdb -E UTF8 -O weblate weblate

Migrar para PostgreSQL usa usargloader

O pgloader é uma ferramenta de migração genérica para migrar dados para o PostgreSQL. Pode usá-lo para migrar o seu banco de dados do Weblate.

  1. Ajuste o seu settings.py para usar o PostgreSQL como banco de dados.

  2. Migre o esquema no banco de dados PostgreSQL:

    weblate migrate
    weblate sqlflush | weblate dbshell
    

3. Run the pgloader to transfer the data. The following script can be used to migrate the database, but you might want to learn more about pgloader to better understand what it does, and tweak it to match your setup:

LOAD DATABASE
     FROM mysql://weblate:password@localhost/weblate
     INTO postgresql://weblate:password@localhost/weblate

WITH include no drop, truncate, create no tables, create no indexes, no foreign keys, disable triggers, reset sequences, data only

ALTER SCHEMA 'weblate' RENAME TO 'public'
;

Migrando de Pootle

Como o Weblate foi originalmente escrito como um substituto para o Pootle, há suporte para a migração das contas de utilizador a partir dele. Pode despejar os utilizadores do Pootle e importá-los usando importusers.