Aktualizacja Weblate#

Uaktualnienia obrazów platformy Docker#

The official Docker image (see Instalowanie za pomocą Dockera) has all Weblate upgrade steps integrated. There are typically no manual steps needed besides pulling latest version.

Ogólne instrukcje dotyczące aktualizacji#

Before upgrading, please check the current Wymagania dotyczące oprogramowania as they might have changed. Once all requirements are installed or updated, please adjust your settings.py to match changes in the configuration (consult settings_example.py for correct values).

Always check Instrukcje dotyczące poszczególnych wersji before upgrade. In case you are skipping some versions, please follow instructions for all versions you are skipping in the upgrade. Sometimes it’s better to upgrade to some intermediate version to ensure a smooth migration. Upgrading across multiple releases should work, but is not as well tested as single version upgrades.

Informacja

It is recommended to perform a full database backup prior to upgrade so that you can roll back the database in case upgrade fails, see Tworzenie kopii zapasowych i przenoszenie weblate.

  1. Stop wsgi and Celery processes. The upgrade can perform incompatible changes in the database, so it is always safer to avoid old processes running while upgrading.

  2. Aktualizacja kodu Weblate.

    For pip installs it can be achieved by:

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

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

    pip install -U "Weblate[all]"
    

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

    pip install -U Weblate
    

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

    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 Zależności ythona, please check if they cover features you want.

  4. Upgrade configuration file, refer to settings_example.py or Instrukcje dotyczące poszczególnych wersji for needed steps.

  5. Aktualizacja struktury bazy danych:

    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 version from Git, you should also regenerate locale files every time you are upgrading. You can do this by invoking:

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

    weblate check --deploy
    
  10. Uruchom ponownie workera Celery (patrz Zadania w tle korzystające z Celery).

Instrukcje dotyczące poszczególnych wersji#

Zmienione w wersji 5.0: Version specific instructions are now included in the release notes, see Weblate 5.5.

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.

Migrating from other databases to PostgreSQL#

If you are running Weblate on other dabatase than PostgreSQL, you should consider migrating to PostgreSQL as Weblate performs best with it. The following steps will guide you in migrating your data between the databases. Please remember to stop both web and Celery servers prior to the migration, 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 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 Weblate database.

  1. Adjust your settings.py to use PostgreSQL as a 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 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 replacement from Pootle, it is supported to migrate user accounts from Pootle. You can dump the users from Pootle and import them using importusers.