Aktualizacja Weblate

Uaktualnienia obrazów platformy Docker

The official Weblate Docker image (see Instalowanie za pomocą Dockera) integrates all upgrade steps. Typically, no manual interaction is needed beyond pulling the latest (or at least newer) version.

Ogólne instrukcje dotyczące aktualizacji

Always look for new changes to Wymagania dotyczące oprogramowania before upgrading. Once all requirements are installed or upgraded, ensure your settings.py matches the changes in the configuration (consult settings_example.py for correct values).

Always check Version-specific instructions 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!

Informacja

Always back up the full database before upgrading, so that you can roll back the database if the upgrade fails, see Tworzenie kopii zapasowych i przenoszenie weblate.

  1. Wait for the Celery queues to become empty, then stop the WSGI and Celery processes to avoid old processes running while upgrading. Otherwise incompatible changes in the database might occur.

    The Celery task queue is not a stable interface across releases, so queued tasks from the old version are not guaranteed to work after the upgrade. You can monitor queue length in the Interfejs zarządzania or by using celery_queues.

  2. Upgrade Weblate

    For pip installs it can be achieved by:

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

    Or, if you just want to get the latest released version:

    uv pip install -U "weblate[all]"
    

    If you don’t want to install all of the optional dependencies do:

    uv pip install -U weblate
    

    Using Git checkout, you need to fetch new source code and update your installation:

    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. New Weblate releases might have new Zależności ythona, check if they cover the features you want.

  4. Upgrade the configuration file by following either settings_example.py, or Version-specific instructions.

  5. Upgrade the database:

    weblate migrate --noinput
    
  6. Collect updated static files (see Uruchamianie serwera and Obsługa plików statycznych):

    weblate collectstatic --noinput --clear
    
  7. Compress JavaScript and CSS files (optional, see Kompresowanie zasobów klienta):

    weblate compress
    
  8. If you are running an installation from Git, you should also regenerate locale files every time you upgrade. You can do this by invoking:

    weblate compilemessages
    
  9. Verify that your setup is sane (see also Instalacja produkcyjna):

    weblate check --deploy
    
  10. Restart the Celery worker (see Zadania w tle korzystające z Celery).

Version-specific instructions

Zmienione w wersji 5.0: Version specific instructions are now included in the release notes, see 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.

  • 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.

  • 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.

Migrating from other databases to PostgreSQL

Ostrzeżenie

MySQL and MariaDB are no longer supported in Weblate. You must migrate to PostgreSQL before upgrading.

If you are running Weblate with MySQL or MariaDB, 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.

Tworzenie bazy danych w PostgreSQL

It is usually a good idea to run Weblate in a separate database, and a separate user account:

# 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

Migrating to PostgreSQL using pgloader

The pgloader is a generic migration tool to migrate data to PostgreSQL. You can use it to migrate your Weblate database.

  1. Adjust your settings.py to use PostgreSQL as database.

  2. Migrate the schema in the PostgreSQL database:

    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'
;

Migracja z Pootle

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