Atualizando o Weblate

Atualizações de imagem Docker

A imagem Docker oficial (veja Instalando usando Docker) possui todas as etapas de atualização integradas do Weblate. Normalmente não há nenhuma etapa manual necessáeia além de baixar a versão mais recente.

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

Antes de atualizar, verifique os atuais Requisitos de software, pois eles podem ter sido alterados. Uma vez que todos os requisitos estejam instalados ou atualizados, ajuste seu settings.py para corresponder às mudanças na configuração (consulte settings_example.py para os valores corretos).

Sempre verifique Instruções específicas de versão antes de atualizar. Caso você esteja pulando algumas versões, siga as instruções para todas as versões que você está pulando na atualização. Às vezes, é melhor atualizar para alguma versão intermediária para garantir uma migração tranquila. A atualização em várias versões deve funcionar, mas não é tão bem testada quanto as atualizações de versão única.

Nota

É recomendado fazer um backup completo do banco de dados antes da atualização para que você possa reverter o banco de dados caso a atualização falhe, veja Fazendo backup e movendo o Weblate.

  1. Pare os processos wsgi e Cellery. A atualização pode realizar alterações incompatíveis no banco de dados, por isso é sempre mais seguro evitar a execução de processos antigos durante a atualização.

  2. Atualize o código do Weblate.

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

    pip install -U "Weblate[all]==version"
    

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

    pip install -U "Weblate[all]"
    

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

    pip install -U Weblate
    

    Com um checkout do Git, você precisa obter o novo código-fonte e atualizar sua instalação:

    cd weblate-src
    git pull
    # Update Weblate inside your virtualenv
    . ~/weblate-env/bin/pip install -e '.[all]'
    # Install dependencies directly when not using virtualenv
    pip install --upgrade -e .
    # Install optional dependencies directly when not using virtualenv
    pip install --upgrade -e '.[all]'
    
  3. New Weblate release might have new Dependências Python, please check if they cover features you want.

  4. Atualize o arquivo de configuração, consulte o settings_example.py ou Instruções específicas de versão para os passos necessários.

  5. Atualize estrutura do banco de dados:

    weblate migrate --noinput
    
  6. Colete arquivos estáticos atualizados (veja Executando servidor e Servindo arquivos estáticos):

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

    weblate compress
    
  8. Se você está usando uma versão do Git, você também deve gerar novamente arquivos locais toda vez que estiver atualizando. Você pode fazer isso invocando:

    weblate compilemessages
    
  9. Verifique que 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 usando Celery).

Instruções específicas de versão

Alterado na versão 5.0: Version specific instructions are now included in the release notes, see Weblate 5.5.1.

Upgrade from an older major version

Upgrades across major versions are not supported. Always upgrade to the latest patch level for the initial major release. Upgrades skipping this step are not supported and will break.

  • If you are upgrading from the 2.x release, always first upgrade to 3.0.1.

  • If you are upgrading from the 3.x release, always first upgrade to 4.0.4.

  • If you are upgrading from the 4.x release, always first upgrade to 5.0.2.

Migrando de outros bancos de dados para o PostgreSQL

Se você estiver executando o Weblate em outro banco de dados que não o PostgreSQL, deve considerar a migração para o PostgreSQL, pois o Weblate tem melhor desempenho com ele. As etapas a seguir o orientarão na migração de seus dados entre os bancos de dados. Lembre-se de parar os servidores web e Celery antes da migração, caso contrário, você pode acabar com dados inconsistentes.

Criando um banco de dados no PostgreSQL

Geralmente é uma boa ideia executar o Weblate em um banco de dados separado e separar a conta do usuário:

# 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

Migrando para PostgreSQL usando pgloader

O pgloader é uma ferramenta de migração genérica para migrar dados para PostgreSQL. Você pode usá-lo para migrar o banco de dados Weblate.

  1. Ajuste 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. Execute o pgloader para transferir os dados. O seguinte script pode ser usado para migrar o banco de dados, mas você pode querer aprender mais sobre pgloader para entender o que ele faz e ajustá-lo para corresponder à sua configuração:

    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

As Weblate was originally written as replacement from Pootle, it is supported to migrate user accounts from Pootle. You can dump the users from Pootle and import them using importusers.