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.
Ver também
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.
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.
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 . # Install dependencies directly when not using virtualenv pip install --upgrade -r requirements.txt # Install optional dependencies directly when not using virtualenv pip install --upgrade -r requirements-optional.txt
A nova versão do Weblate pode ter novas Dependências opcionais. Verifique se elas cobrem os recursos que você deseja.
Atualize o arquivo de configuração, consulte o
settings_example.py
ou Instruções específicas de versão para os passos necessários.Atualize estrutura do banco de dados:
weblate migrate --noinput
Colete arquivos estáticos atualizados (veja Executando servidor e Servindo arquivos estáticos):
weblate collectstatic --noinput --clear
Compactar arquivos JavaScript e CSS (opcional, veja Comprimindo os ativos do cliente):
weblate compress
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
Verifique que sua configuração é sana (ver também Configuração de produção):
weblate check --deploy
Reinicie o worker do Celery (veja Tarefas de fundo usando Celery).
Instruções específicas de versão
Atualizar de 2.x
Se você está atualizando da versão 2.x, sempre atualize para a 3.0.1 antes e depois continue atualizando na série 3.x. Atualizações pulando esse passo não são suportadas e não funcionarão corretamente.
Atualizar da 3.x
Se você está atualizando da versão 3.x, sempre atualize para a 4.0.4 ou 4.1.1 antes e depois continue atualizando na série 4.x. Atualizações pulando esse passo não são suportadas e não funcionarão corretamente.
Atualizar da 4.0 para 4.1
Siga as Instruções genéricas de atualização para realizar a atualização.
Mudanças notáveis de configuração ou dependências:
Há várias mudanças em
settings_example.py
, notadamente de middleware. Por favor, ajuste suas configurações de acordo.Há novos formatos de arquivo, você pode querer incluí-los no caso de ter modificado o
WEBLATE_FORMATS
.Há novas verificações de qualidade, você pode querer incluí-las no caso de ter modificado o
CHECK_LIST
.Há uma mudança na configuração
DEFAULT_THROTTLE_CLASSES
para permitir relatórios de limitação de taxa na API.Há alguns requisitos novos e atualizados.
Há uma mudança em
django: INSTALLED_APPS
.A configuração
MT_DEEPL_API_VERSION
foi removida na versão 4.7. A tradução de máquina DeepL agora usa o novoMT_DEEPL_API_URL
. Você pode precisar ajustarMT_DEEPL_API_URL
para corresponder à sua assinatura.
Ver também
Atualizar da 4.1 para 4.2
Siga as Instruções genéricas de atualização para realizar a atualização.
Mudanças notáveis de configuração ou dependências:
A atualização de versões 3.x não é mais suportada. Atualize para 4.0 ou 4.1 primeiro.
Há alguns requisitos novos e atualizados.
Há várias mudanças em
settings_example.py
, notadamente um novo middleware e a mudança na ordem dos aplicativos.As chaves para formatos baseados em JSON não incluem mais um ponto inicial. As sequências são ajustadas durante a migração do banco de dados, mas os componentes externos podem precisar de ajustes no caso de você depender de chaves nas exportações ou API.
A configuração do Celery foi alterada para não usar mais a fila
memory
. Ajuste seus scripts de inicialização e configuração deCELERY_TASK_ROUTES
.O domínio Weblate está agora configurado nas configurações, veja
SITE_DOMAIN
(ouWEBLATE_SITE_DOMAIN
). Você terá que configurá-lo antes de executar o Weblate.Os campos de nome de usuário e e-mail no banco de dados de usuários agora devem ser únicos e sem distinção de maiúsculo para minúsculo. Isso acidentalmente não foi reforçado com PostgreSQL.
Ver também
Atualizar da 4.2 para 4.3
Siga as Instruções genéricas de atualização para realizar a atualização.
Mudanças notáveis de configuração ou dependências:
Há algumas mudanças nas verificações de qualidade, você pode querer incluí-las no caso de ter modificado o
CHECK_LIST
.O atributo do idioma fonte foi movido do projeto para um componente que é exposto na API. Você precisará atualizar Weblate Client caso esteja usando.
A migração do banco de dados para 4.3 pode demorar, dependendo do número de textos que você está traduzindo (espere cerca de uma hora de tempo de migração por 100.000 textos fonte).
Há uma mudança em
django: INSTALLED_APPS
.Há uma nova configuração
SESSION_COOKIE_AGE_AUTHENTICATED
que complementaSESSION_COOKIE_AGE
.Caso você esteja usando hub ou lab para integrar com GitHub ou GitLab, você precisará reconfigurar isto, veja
GITHUB_CREDENTIALS
eGITLAB_CREDENTIALS
.
Alterado na versão 4.3.1:
A configuração do Celery foi alterada para adicionar a fila de
memory
. Ajuste seus scripts de inicialização e configuração deCELERY_TASK_ROUTES
.
Alterado na versão 4.3.2:
O método
post_update
de extensões agora leva o parâmetro extraskip_push
.
Ver também
Atualizar da 4.3 para 4.4
Siga as Instruções genéricas de atualização para realizar a atualização.
Mudanças notáveis de configuração ou dependências:
Há uma mudança em
django: INSTALLED_APPS
,weblate.configuration
deve ser adicionado lá.Django 3.1 agora é necessário.
Caso você esteja usando MySQL ou MariaDB, as versões mínimas necessárias aumentaram, veja MySQL e MariaDB.
Alterado na versão 4.4.1:
Gettext monolíngue agora usa
msgid
emsgctxt
quando presente. Isso mudará a identificação das sequências de tradução em tais arquivos, quebrando links para dados estendidos do Weblate, como capturas de tela ou estados de revisão. Certifique-se de confirmar as alterações pendentes em tais arquivos antes de atualizar e é recomendado forçar o carregamento do componente afetado usandoloadpo
.Incrementada a versão mínima necessária do translate-toolkit para resolver vários problemas de formato de arquivo.
Ver também
Atualizar da 4.4 para 4.5
Siga as Instruções genéricas de atualização para realizar a atualização.
Mudanças notáveis de configuração ou dependências:
A migração pode levar um tempo considerável se você tiver grandes glossários.
Glossários agora são armazenados como componentes normais.
A API do glossário foi removida. Use a API de tradução normal para acessar os glossários.
Há uma mudança em
django: INSTALLED_APPS
-weblate.metrics
deve ser adicionado.
Alterado na versão 4.5.1:
Há uma nova dependência do módulo pyahocorasick.
Ver também
Atualizar da 4.5 para 4.6
Siga as Instruções genéricas de atualização para realizar a atualização.
Mudanças notáveis de configuração ou dependências:
Há novos formatos de arquivo, você pode querer incluí-los no caso de ter modificado o
WEBLATE_FORMATS
.A API para a criação de componentes agora usa automaticamente URLs internas do Weblate, veja
POST /api/projects/(string:project)/components/
.Há uma mudança nas dependências e
django: PASSWORD_HASHERS
para preferir Argon2 para hashing de senhas.
Ver também
Atualizar da 4.6 para 4.7
Siga as Instruções genéricas de atualização para realizar a atualização.
Mudanças notáveis de configuração ou dependências:
Há várias mudanças em
settings_example.py
, notadamente mudanças de middleware (django: MIDDLEWARE
). Ajuste suas configurações de acordo.A tradução de máquina DeepL agora tem uma configuração
MT_DEEPL_API_URL
genérica para se adaptar a diferentes modelos de assinatura de forma mais flexível. A configuraçãoMT_DEEPL_API_VERSION
não é mais usada.Django 3.2 agora é necessário.
Ver também
Atualizar da 4.7 para 4.8
Siga as Instruções genéricas de atualização para realizar a atualização.
Não há etapas de atualização adicionais necessárias nesta versão.
Ver também
Atualizar da 4.8 para 4.9
Siga as Instruções genéricas de atualização para realizar a atualização.
Há uma mudança no armazenamento de métricas, a atualização pode levar muito tempo em sites maiores.
Ver também
Atualizar da 4.9 para 4.10
Siga as Instruções genéricas de atualização para realizar a atualização.
Há uma mudança nos grupos por projeto, a atualização pode demorar muito em sites com milhares de projetos.
Django 4.0 fez algumas mudanças incompatíveis, veja Backwards incompatible changes in 4.0. Weblate ainda oferece suporte ao Django 3.2 por enquanto, no caso de alguma dessas ser problemática. Mudanças mais notáveis que podem afetar o Weblate:
Removido o suporte a PostgreSQL 9.6, o Django 4.0 oferece suporte para PostgreSQL 10 e superior.
O formato de
CSRF_TRUSTED_ORIGINS
foi alterado.
O contêiner Docker agora usa Django 4.0, consulte as alterações acima.
Ver também
Atualizar da 4.10 para 4.11
Siga as Instruções genéricas de atualização para realizar a atualização.
O Weblate agora requer Python 3.7 ou mais recente.
A implementação de Gerenciando controle de acesso por projeto foi alterada, removendo o prefixo do projeto dos nomes dos grupos. Isso afeta os usuários da API.
Weblate agora usa o módulo
charset-normalizer
em vez dechardet
para detecção de conjunto de caracteres.Alterado no 4.11.1: Há uma alteração na configuração
REST_FRAMEWORK
(remoção de um dos backends emDEFAULT_AUTHENTICATION_CLASSES
).
Ver também
Atualizar da 4.11 para 4.12
Siga as Instruções genéricas de atualização para realizar a atualização.
Não há etapas especiais necessárias.
Ver também
Atualizar da 4.12 para 4.13
Siga as Instruções genéricas de atualização para realizar a atualização.
Os Definições de idioma agora são atualizados automaticamente na atualização, use
UPDATE_LANGUAGES
para desabilitar isso.A manipulação de contexto e local foi alterada para os formatos de arquivo Arquivos RC do Windows, Arquivos HTML, Formato IDML e Arquivos texto. Na maioria dos casos, o contexto agora é mostrado como local.
Os serviços de tradução automática agora são configurados usando a interface do usuário, as configurações do arquivo de configuração serão importadas durante a migração do banco de dados.
Ver também
Atualizar da 4.13 para 4.14
Siga as Instruções genéricas de atualização para realizar a atualização.
As verificações de formatação Java agora correspondem aos marcadores GNU gettext. Os marcadores definidos no Weblate serão migrados automaticamente, mas scripts de terceiros precisarão usar
java-printf-format
em vez dejava-format
ejava-format
em vez dejava -messageformat
.A dependência jellyfish foi substituída por rapidfuzz.
Alterado no 4.14.2: Descontinuada a configuração insegura de chaves de API do serviço VCS por meio da configuração _TOKEN/_USERNAME em vez da lista _CREDENTIALS. No Docker, adicionar a diretiva _HOST correspondente. Por exemplo, confira
WEBLATE_GITHUB_HOST
eGITHUB_CREDENTIALS
.
Ver também
Atualizar da 4.14 para 4.15
Siga as Instruções genéricas de atualização para realizar a atualização.
O Weblate agora requer a extensão
btree_gin
no PostgreSQL. O processo de migração irá instalá-lo se tiver privilégios suficientes. Veja Criando um banco de dados no PostgreSQL para configuração manual.A imagem do Docker não habilita mais o modo de depuração por padrão. Caso queira, habilite-o no ambiente usando
WEBLATE_DEBUG
.A migração do banco de dados pode levar horas em instâncias maiores devido à recriação de alguns dos índices.
Alterado no 4.15.1: O valor padrão para
DEFAULT_PAGINATION_CLASS
nas configurações do framework foi alterado.
Ver também
Upgrade from 4.15 to 4.16
Siga as Instruções genéricas de atualização para realizar a atualização.
Celery beat is now storing the tasks schedule in the database,
CELERY_BEAT_SCHEDULER
andINSTALLED_APPS
need to be changed for that.The deprecated VCS setting for credentials is no longer supported, see Atualizar da 4.13 para 4.14.
Upgrade of django-crispy-forms requires changes in
INSTALLED_APPS
.Integration of django-cors-headers requires changes in
INSTALLED_APPS
andMIDDLEWARE
.
Ver também
Atualização de Python 2 para Python 3
O Weblate não oferece mais suporte a Python anterior a 3.6. Caso você ainda esteja executando uma versão mais antiga, migre para o Python 3 primeiro na versão existente e atualize mais tarde. Consulte Atualizando do Python 2 para o Python 3 na documentação do Weblate 3.11.1.
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 usando despejos do Django em JSON
A abordagem mais simples para migração é utilizar despejos do Django em JSON. Isso funciona bem para instalações menores. Em sites maiores você pode querer usar o pgloader, veja Migrando para PostgreSQL usando pgloader.
Adicione PostgreSQL como conexão de banco de dados adicional ao
settings.py
:
DATABASES = {
"default": {
# Database engine
"ENGINE": "django.db.backends.mysql",
# Database name
"NAME": "weblate",
# Database user
"USER": "weblate",
# Database password
"PASSWORD": "password",
# Set to empty string for localhost
"HOST": "database.example.com",
# Set to empty string for default
"PORT": "",
# Additional database options
"OPTIONS": {
# In case of using an older MySQL server, which has MyISAM as a default storage
# 'init_command': 'SET storage_engine=INNODB',
# Uncomment for MySQL older than 5.7:
# 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
# If your server supports it, see the Unicode issues above
"charset": "utf8mb4",
# Change connection timeout in case you get MySQL gone away error:
"connect_timeout": 28800,
},
},
"postgresql": {
# Database engine
"ENGINE": "django.db.backends.postgresql",
# Database name
"NAME": "weblate",
# Database user
"USER": "weblate",
# Database password
"PASSWORD": "password",
# Set to empty string for localhost
"HOST": "database.example.com",
# Set to empty string for default
"PORT": "",
},
}
Execute migrações e descarte todos os dados inseridos nas tabelas:
weblate migrate --database=postgresql
weblate sqlflush --database=postgresql | weblate dbshell --database=postgresql
Despeje o banco de dados legado e importe para o PostgreSQL
weblate dumpdata --all --output weblate.json
weblate loaddata weblate.json --database=postgresql
Ajuste
django: DATABASES
para usar apenas o banco de dados PostgreSQL como padrão, remova a conexão legada.
O Weblate agora deve estar pronto para ser executado a partir do banco de dados PostgreSQL.
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.
Ajuste seu
settings.py
para usar o PostgreSQL como banco de dados.Migre o esquema no banco de dados PostgreSQL:
weblate migrate weblate sqlflush | weblate dbshell
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
Como o Weblate foi originalmente escrito como substituto do Pootle, é compatível com a migração de contas de usuário do Pootle. Você pode descartar os usuários do Pootle e importá-los usando importusers
.