Оновлення Weblate

Оновлення образу Docker

До офіційного образу Docker для Weblate (див. Установлення за допомогою Docker) інтегровано усі кроки оновлення. Кроків, які слід виконати вручну, окрім отримання коду найсвіжішої (або принаймні новішої) версії, немає.

Загальні настанови щодо оновлення

Завжди перевіряйте наявність нових змін у Вимоги для програмного забезпечення перед оновленням. Після встановлення або оновлення всіх вимог переконайтеся, що ваш settings.py відповідає змінам у конфігурації (зверніться до settings_example.py для отримання правильних значень).

Завжди перевіряйте Специфічні для версій настанови перед оновленням. Якщо ви пропускаєте якісь версії, обов’язково дотримуйтесь інструкцій для всіх версій, які ви пропускаєте під час такого оновлення. Іноді краще поступово оновлюватися до проміжної версії, щоб забезпечити плавну міграцію. Оновлення між кількома випусками має працювати, але воно не так добре перевірене, як оновлення однієї версії!

Примітка

До оновлення рекомендуємо вам створити повну резервну копію бази даних, щоб ви могли повернутися до попереднього стану бази даних, якщо не вдасться виконати оновлення, див. Резервне копіювання і пересування Weblate.

  1. Дочекайтеся, поки черги Celery повністю спорожніють, а потім зупиніть процеси WSGI та Celery, щоб уникнути виконання старих процесів під час оновлення. Інакше можуть статися несумісні зміни в базі даних.

    Черга завдань Celery не є стабільним інтерфейсом у різних версіях, тому не гарантується, що завдання, поставлені в чергу у старій версії, працюватимуть після оновлення. Ви можете відстежувати довжину черги в Інтерфейс керування або за допомогою команди celery_queues.

  2. Оновлення Weblate

    Для встановлень за допомогою pip цього можна досягти такою командою:

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

    Або, якщо ви просто хочете отримати найсвіжішу випущену версію:

    uv pip install -U "weblate[all]"
    

    Якщо ви не хочете встановлювати усі необов’язкові залежності, зробіть так:

    uv pip install -U weblate
    

    Якщо ви працюєте із копією з Git, вам слід отримати новий початковий коді і оновити встановлену у вас версію:

    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]'
    
  3. У нового випуску Weblate можуть бути нові Залежності Python. Перевірте, чи забезпечують вони роботу потрібних вам можливостей.

  4. Оновіть файл конфігурації, виконавши або settings_example.py, або Специфічні для версій настанови.

  5. Оновлення бази даних:

    weblate migrate --noinput
    
  6. Зберіть оновлені статичні файли (див. Запуск сервера і Обслуговування статичних файлів):

    weblate collectstatic --noinput --clear
    
  7. Стисніть файли JavaScript і CSS (необов’язково, див. Стиснення клієнтських даних):

    weblate compress
    
  8. Якщо ви працюєте із версією з Git, вам слід також повторно створювати файли локалей кожного разу після оновлення. Зробити це можна за допомогою такої команди:

    weblate compilemessages
    
  9. Перевірте, чи є працездатною ваша конфігурація (див. також Промислові налаштування):

    weblate check --deploy
    
  10. Перезапустіть засіб обробки Celery (див. Фонові завдання з використанням Celery).

Специфічні для версій настанови

Змінено в версії 5.0: Специфічні настанови щодо версій тепер включено до приміток щодо випуску, див. Weblate 2026.7.

Upgrade from an older unsupported release

Direct upgrades are only supported for releases from the current or previous calendar year. If you need to upgrade across this boundary, upgrade first to an intermediate version as listed below. Upgrades skipping this step are not supported and will break.

  • Якщо ви оновлюєте систему з версії 2.x, завжди спочатку оновіться до версії 3.0.1.

  • Якщо ви оновлюєте систему з версії 3.x, завжди спочатку оновіться до версії 4.0.4.

  • Якщо ви оновлюєтесь з версії 4.x, завжди спочатку оновлюйтесь до 5.0.2.

  • If you are upgrading from 5.0.x-5.9.x, always first upgrade to 5.10.4.

  • Upgrades from 5.10.x and newer are currently directly supported.

Перенесення даних з інших баз даних до PostgreSQL

Попередження

Weblate більше не підтримує MySQL та MariaDB. Перед оновленням необхідно перейти на 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.

  1. Скоригуйте ваш settings.py так, щоб у ньому було використано базу даних PostgreSQL.

  2. Перенесіть схему до бази даних 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. Ви можете створити дамп записів користувачів з Pootle і імпортувати їх за допомогою importusers.