Обновление Weblate¶
Обновления образа Docker’а¶
Официальный образ Docker Weblate (см. Установка с помощью Docker’а) включает все шаги обновления. Обычно не требуется ручного вмешательства, кроме получения последней (или, по крайней мере, более новой) версии.
См. также
Общие инструкции по обновлению¶
Всегда проверяйте новые изменения в Требования к программному обеспечению перед обновлением. После того, как все зависимости установлены или обновлены, убедитесь, что ваш settings.py соответствует изменениям в конфигурации (обратитесь к settings_example.py для правильных значений).
Всегда проверяйте Инструкции для конкретных версий перед обновлением. Если вы пропускаете какие-либо версии, обязательно следуйте инструкциям для всех версий, которые вы пропускаете при таком обновлении. Иногда лучше обновляться постепенно до промежуточной версии, чтобы обеспечить плавную миграцию. Обновление через несколько выпусков должно работать, но оно не так хорошо протестировано, как обновления на одну версию!
Примечание
Всегда создавайте резервную копию всей базы данных перед обновлением, чтобы иметь возможность откатить базу данных в случае сбоя обновления, см. Резервное копирование и перенос Weblate.
Дождитесь, пока очереди Celery станут пустыми, затем остановите процессы WSGI и Celery, чтобы во время обновления не работали старые процессы. В противном случае могут произойти несовместимые изменения в базе данных.
Очередь задач Celery не является стабильным интерфейсом между версиями, поэтому задачи, поставленные в очередь из старой версии, не гарантированно будут работать после обновления. Вы можете отслеживать длину очереди в Интерфейс управления или с помощью
celery_queues.Обновление Weblate
При установке через pip это можно сделать следующим образом:
uv pip install -U "weblate[all]==version"
Или, если вы просто хотите получить последнюю выпущенную версию:
uv pip install -U "weblate[all]"
Если вы не хотите устанавливать все необязательные зависимости, сделайте это:
uv pip install -U weblate
При использовании Git checkout вам необходимо получить новый исходный код и обновить вашу установку:
cd weblate-src git pull # Update Weblate inside your Python environment . ~/weblate-env/bin/uv pip install -e '.[all]' # Install dependencies directly when not using Python environment uv pip install --upgrade -e . # Install optional dependencies directly when not using a Python environment uv pip install --upgrade -e '.[all]'
Новые выпуски Weblate могут иметь новые Зависимости Python, проверьте, покрывают ли они нужные вам функции.
Обновите файл конфигурации, следуя
settings_example.pyили Инструкции для конкретных версий.Обновите базу данных:
weblate migrate --noinput
Соберите обновленные статические файлы (смотрите разделы Запуск сервера и Обслуживание статических файлов):
weblate collectstatic --noinput --clear
Сожмите файлы JavaScript и CSS (необязательно, смотрите раздел Сжатие клиентских ресурсов):
weblate compressЕсли вы используете установку из Git, вам также следует регенерировать файлы локалей при каждом обновлении. Вы можете сделать это, выполнив:
weblate compilemessagesУбедитесь, что ваша установка в порядке (также смотрите раздел Рабочая среда):
weblate check --deploy
Перезапустите обработчик Celery (см. Фоновые задачи с использованием Celery).
Инструкции для конкретных версий¶
Изменено в версии 5.0: Инструкции для конкретной версии теперь включены в примечания к выпуску, см. Weblate 2026.5.
Обновление со старой неподдерживаемой версии¶
Прямые обновления поддерживаются только для выпусков текущего или предыдущего календарного года. Если вам необходимо обновиться через эту границу, сначала обновитесь до промежуточной версии, указанной ниже. Обновления, пропускающие этот шаг, не поддерживаются и не будут работать.
Если вы переходите с версии 2.x, всегда сначала переходите на версию 3.0.1.
Если вы переходите с версии 3.x, всегда сначала переходите на версию 4.0.4.
Если вы переходите с версии 4.x, всегда сначала переходите на версию 5.0.2.
Если вы обновляетесь с версии 5.0.x-5.9.x, всегда сначала обновляйтесь до 5.10.4.
Обновления с версий 5.10.x и новее в настоящее время поддерживаются напрямую.
Переход с других баз данных на PostgreSQL¶
Предупреждение
MySQL и MariaDB больше не поддерживаются в Weblate. Вы должны выполнить миграцию на PostgreSQL перед обновлением.
Если вы используете Weblate с MySQL или MariaDB, рассмотрите возможность миграции на PostgreSQL для повышения производительности, выполнив следующие шаги. Не забудьте предварительно остановить веб-сервер и сервер Celery, иначе вы можете получить несогласованные данные.
Создание базы данных в PostgreSQL¶
Обычно рекомендуется запускать Weblate в отдельной базе данных и под отдельной учётной записью:
# 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
Переход на PostgreSQL с помощью pgloader¶
pgloader — это универсальный инструмент миграции для переноса данных в PostgreSQL. Вы можете использовать его для миграции вашей базы данных Weblate.
Настройте ваш
settings.pyдля использования PostgreSQL в качестве базы данных.Перенесите схему в базу данных 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' ;
Переход с Pootle¶
Поскольку Weblate изначально был написан как замена Pootle, поддерживается миграция учётных записей пользователей из него. Вы можете выгрузить пользователей из Pootle и импортировать их с помощью importusers.