Meningkatkan Weblate

Peningkatan gambar Docker

Gambar Docker Weblate resmi (lihat Memasang menggunakan Docker) mengintegrasikan semua langkah peningkatan. Biasanya, tidak diperlukan interaksi manual selain menarik versi terbaru (atau setidaknya yang lebih baru).

Petunjuk peningkatan umum

Selalu periksa perubahan baru pada Persyaratan perangkat lunak sebelum melakukan peningkatan. Setelah semua persyaratan terpasang atau ditingkatkan, pastikan settings.py Anda sesuai dengan perubahan konfigurasi (lihat settings_example.py untuk nilai yang benar).

Selalu periksa Petunjuk spesifik versi sebelum melakukan peningkatan. Jika Anda melewatkan versi apa pun, pastikan untuk mengikuti petunjuk untuk semua versi yang Anda lewatkan selama peningkatan tersebut. Terkadang lebih baik untuk meningkatkan secara bertahap ke versi perantara untuk memastikan migrasi yang lancar. Meningkatkan beberapa rilis seharusnya berhasil, tetapi tidak teruji sebaik peningkatan versi tunggal!

Catatan

Selalu cadangkan seluruh basis data sebelum melakukan peningkatan, sehingga Anda dapat mengembalikan basis data jika peningkatan gagal, lihat Mencadangkan dan memindahkan 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 Antarmuka pengelolaan or by using celery_queues.

  2. Tingkatkan Weblate

    Untuk pemasangan pip dapat dicapai dengan:

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

    Atau, jika Anda hanya ingin mendapatkan versi rilis terbaru:

    uv pip install -U "weblate[all]"
    

    Jika Anda tidak ingin memasang semua dependensi opsional, lakukan:

    uv pip install -U weblate
    

    Dengan menggunakan Git checkout, Anda perlu mengambil kode sumber baru dan memperbarui pemasangan Anda:

    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. Rilis Weblate baru mungkin memiliki Dependensi Python baru, periksa apakah mereka mencakup fitur yang Anda inginkan.

  4. Tingkatkan berkas konfigurasi dengan mengikuti settings_example.py, atau Petunjuk spesifik versi.

  5. Tingkatkan basis data:

    weblate migrate --noinput
    
  6. Kumpulkan berkas statis yang diperbarui (lihat Menjalankan server dan Menyajikan berkas statis):

    weblate collectstatic --noinput --clear
    
  7. Kompres berkas JavaScript dan CSS (opsional, lihat Mengompres aset klien):

    weblate compress
    
  8. Jika Anda menjalankan pemasangan dari Git, Anda juga harus membuat ulang berkas lokalisasi setiap kali Anda melakukan peningkatan. Anda dapat melakukannya dengan menjalankan perintah:

    weblate compilemessages
    
  9. Verifikasikan bahwa pengaturan Anda waras (lihat juga Pengaturan produksi):

    weblate check --deploy
    
  10. Mulai ulang pekerja Celery (lihat Tugas latar belakang menggunakan Celery).

Petunjuk spesifik versi

Berubah pada versi 5.0: Petunjuk spesifik versi sekarang disertakan dalam catatan rilis, lihat Weblate 2026.5.

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.

  • Jika Anda melakukan peningkatan dari versi 2.x, selalu tingkatkan terlebih dahulu ke versi 3.0.1.

  • Jika Anda melakukan peningkatan dari versi 3.x, selalu tingkatkan terlebih dahulu ke versi 4.0.4.

  • Jika Anda melakukan peningkatan dari versi 4.x, selalu tingkatkan terlebih dahulu ke versi 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.

Memigrasikan dari basis data lain ke PostgreSQL

Peringatan

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

Jika Anda menjalankan Weblate dengan MySQL atau MariaDB, pertimbangkan untuk bermigrasi ke PostgreSQL untuk kinerja yang lebih baik dengan mengikuti langkah berikut. Ingatlah untuk menghentikan kedua, server web dan Celery terlebih dahulu, jika tidak Anda mungkin akan mengalami data yang tidak konsisten.

Membuat basis data di PostgreSQL

Biasanya merupakan ide yang bagus untuk menjalankan Weblate dalam basis data terpisah, dan akun pengguna terpisah:

# 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

Memigrasikan ke PostgreSQL menggunakan pgloader

pgloader adalah alat migrasi umum untuk memigrasikan data ke PostgreSQL. Anda dapat menggunakannya untuk memigrasikan basis data Weblate Anda.

  1. Sesuaikan settings.py Anda untuk menggunakan PostgreSQL sebagai basis data.

  2. Migrasikan skema dalam basis data 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'
;

Memigrasikan dari Pootle

Karena Weblate awalnya ditulis sebagai pengganti Pootle, migrasi akun pengguna dari Pootle didukung. Anda dapat membuang pengguna dari Pootle dan mengimpornya menggunakan importusers.