Actualizarea Weblate
Actualizări ale imaginilor Docker
The official Docker image (see Instalarea folosind Docker) has all Weblate upgrade steps integrated. There are typically no manual steps needed besides pulling latest version.
Instrucțiuni generice de actualizare
Înainte de actualizare, vă rugăm să verificați cerințele actuale Cerințe software, deoarece acestea s-ar putea să se fi schimbat. După ce toate cerințele sunt instalate sau actualizate, vă rugăm să ajustați fișierul settings.py
pentru a corespunde modificărilor din configurație (consultați settings_example.py
pentru valorile corecte).
Verificați întotdeauna Instrucțiuni specifice versiunii înainte de actualizare. În cazul în care săriți peste unele versiuni, vă rugăm să urmați instrucțiunile pentru toate versiunile pe care le săriți în actualizare. Uneori este mai bine să faceți upgrade la o versiune intermediară pentru a asigura o migrare fără probleme. Actualizarea pe mai multe versiuni ar trebui să funcționeze, dar nu este la fel de bine testată ca actualizările pe o singură versiune.
Notă
Este recomandat să efectuați o copie de rezervă completă a bazei de date înainte de actualizare, astfel încât să puteți reface baza de date în cazul în care actualizarea eșuează; consultați Copierea de rezervă și mutarea Weblate.
Opriți procesele wsgi și Celery. Actualizarea poate efectua modificări incompatibile în baza de date, așa că este întotdeauna mai sigur să evitați procesele vechi care rulează în timpul actualizării.
Actualizați codul Weblate.
În cazul instalațiilor pip, acest lucru poate fi realizat prin:
pip install -U "Weblate[all]"
If you don’t want to install all of the optional dependencies do:
pip install -U Weblate
Cu Git checkout, trebuie să preluați noul cod sursă și să vă actualizați instalarea:
cd weblate-src git pull # Update Weblate inside your virtualenv . ~/weblate-env/bin/pip install -e . # Install dependencies directly when not using virtualenv pip install --upgrade -r requirements.txt # Install optional dependencies directly when not using virtualenv pip install --upgrade -r requirements-optional.txt
New Weblate release might have new Dependențe opționale, please check if they cover features you want.
Actualizați fișierul de configurare, consultați
settings_example.py
sau Instrucțiuni specifice versiunii pentru pașii necesari.Actualizarea structurii bazei de date:
weblate migrate --noinput
Colectează fișierele statice actualizate (a se vedea Rularea serverului și Servirea fișierelor statice):
weblate collectstatic --noinput --clear
Comprimarea fișierelor JavaScript și CSS (opțional, consultați Comprimarea activelor clienților):
weblate compress
Dacă executați versiunea din Git, ar trebui, de asemenea, să regenerați fișierele locale de fiecare dată când faceți actualizări. Puteți face acest lucru prin invocarea:
weblate compilemessages
Verificați dacă configurația dumneavoastră este sănătoasă (consultați și Configurarea producției):
weblate check --deploy
Reporniți Celery worker (vezi Sarcini de fundal folosind Celery).
Instrucțiuni specifice versiunii
Actualizare de la 2.x
Dacă faceți upgrade de la versiunea 2.x, faceți întotdeauna mai întâi upgrade la 3.0.1 și apoi continuați upgrade-ul în seria 3.x. Actualizările care sar peste acest pas nu sunt acceptate și se vor defecta.
Actualizare de la 3.x
Dacă faceți upgrade de la versiunea 3.x, faceți întotdeauna mai întâi upgrade la 4.0.4 sau 4.1.1 și apoi continuați să faceți upgrade în seria 4.x. Actualizările care sar peste acest pas nu sunt acceptate și se vor defecta.
Actualizare de la 4.0 la 4.1
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
Modificări notabile ale configurației sau dependențelor:
Există mai multe modificări în
settings_example.py
, dintre care cele mai importante sunt modificările middleware, vă rugăm să vă ajustați setările în consecință.Există noi formate de fișiere, este posibil să doriți să le includeți în cazul în care ați modificat
WEBLATE_FORMATS
.Există noi verificări ale calității, poate doriți să le includeți în cazul în care ați modificat
CHECK_LIST
.A fost modificată setarea
DEFAULT_THROTTLE_CLASSES
pentru a permite raportarea limitării ratei în API.Există unele cerințe noi și actualizate.
Există o modificare în
INSTALLED_APPS
.Setarea
MT_DEEPL_API_VERSION
a fost eliminată în versiunea 4.7. Traducerea automată DeepL utilizează acum în schimb noua setareMT_DEEPL_API_URL
. Este posibil să fie necesar să ajustațiMT_DEEPL_API_URL
pentru a corespunde abonamentului vostru.
Actualizarea de la 4.1 la 4.2
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
Modificări notabile ale configurației sau dependențelor:
Actualizarea de la versiunile 3.x nu mai este suportată, vă rugăm să faceți mai întâi actualizarea la 4.0 sau 4.1.
Există unele cerințe noi și actualizate.
Există mai multe modificări în
settings_example.py
, dintre care cele mai importante sunt noul middleware și modificarea ordinii aplicațiilor.Cheile pentru formatele bazate pe JSON nu mai includ punctul din față. Șirurile de caractere sunt ajustate în timpul migrării bazei de date, dar componentele externe ar putea avea nevoie de ajustare în cazul în care vă bazați pe chei în exporturi sau API.
Configurația Celery a fost modificată pentru a nu mai folosi coada
memory
. Vă rugăm să vă ajustați scripturile de pornire și setareaCELERY_TASK_ROUTES
.Domeniul Weblate este acum configurat în setări, vezi
SITE_DOMAIN
(sauWEBLATE_SITE_DOMAIN
). Va trebui să îl configurați înainte de a rula Weblate.Câmpurile de nume de utilizator și de e-mail din baza de date a utilizatorilor trebuie să fie unice și insensibile la majuscule și minuscule. Din greșeală, acest lucru nu a fost aplicat cu PostgreSQL.
Actualizare de la 4.2 la 4.3
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
Modificări notabile ale configurației sau dependențelor:
Există unele modificări în ceea ce privește verificările de calitate, este posibil să doriți să le includeți în cazul în care ați modificat
CHECK_LIST
.Atributul limbii sursă a fost mutat de la proiect la o componentă care este expusă în API. Va trebui să actualizați Client Weblate în cazul în care îl utilizați.
Migrarea bazei de date către 4.3 poate dura mult timp, în funcție de numărul de șiruri pe care le traduceți (așteptați-vă la aproximativ o oră de migrare pentru fiecare 100.000 de șiruri sursă).
Există o modificare în
INSTALLED_APPS
.Există o nouă setare
SESSION_COOKIE_AGE_AUTHENTICATED
care completeazăSESSION_COOKIE_AGE
.În cazul în care ați folosit hub sau lab pentru a vă integra cu GitHub sau GitLab, va trebui să reconfigurați acest lucru, consultați
GITHUB_CREDENTIALS
șiGITLAB_CREDENTIALS
.
Schimbat în versiunea 4.3.1:
Configurația Celery a fost modificată pentru a adăuga coada
memory
. Vă rugăm să vă ajustați scripturile de pornire și setareaCELERY_TASK_ROUTES
.
Schimbat în versiunea 4.3.2:
Metoda
post_update
a addon-urilor acceptă acum un parametru suplimentarskip_push
.
Actualizare de la 4.3 la 4.4
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
Modificări notabile ale configurației sau dependențelor:
Există o modificare în
INSTALLED_APPS
,weblate.configuration
trebuie să fie adăugat acolo.Django 3.1 este acum necesar.
În cazul în care utilizați MySQL sau MariaDB, versiunile minime necesare au crescut, consultați MySQL și MariaDB.
Schimbat în versiunea 4.4.1:
Gettext monolingv utilizează acum atât
msgid
cât șimsgctxt
atunci când sunt prezente. Acest lucru va schimba identificarea șirurilor de caractere de traducere în astfel de fișiere care sparg legăturile cu date extinse Weblate, cum ar fi capturi de ecran sau stări de revizuire. Vă rugăm să vă asigurați că ați confirmat modificările în așteptare în astfel de fișiere înainte de actualizare și se recomandă să forțați încărcarea componentei afectate folosindloadpo
.A crescut versiunea minimă necesară a translate-toolkit pentru a rezolva mai multe probleme legate de formatul fișierelor.
Actualizare de la 4.4 la 4.5
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
Modificări notabile ale configurației sau dependențelor:
Migrarea ar putea dura mult timp în cazul în care aveți glosare mari.
Glosarele sunt acum stocate ca și componente obișnuite.
API-ul pentru glosare este eliminat, utilizați API-ul de traducere obișnuit pentru a accesa glosarele.
Există o modificare în
INSTALLED_APPS
- ar trebui adăugatweblate.metrics
.
Schimbat în versiunea 4.5.1:
Există o nouă dependență de modulul pyahocorasick.
Actualizare de la 4.5 la 4.6
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
Modificări notabile ale configurației sau dependențelor:
Există noi formate de fișiere, este posibil să doriți să le includeți în cazul în care ați modificat
WEBLATE_FORMATS
.API pentru crearea de componente utilizează acum automat URL-uri interne Weblate, a se vedea
POST /api/projects/(string:project)/components/
.Există o modificare în dependențe și în
PASSWORD_HASHERS
pentru a prefera Argon2 pentru hashing-ul parolelor.
Actualizare de la 4.6 la 4.7
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
Modificări notabile ale configurației sau dependențelor:
Există mai multe modificări în
settings_example.py
, dintre care cele mai importante sunt modificările middleware (MIDDLEWARE
), vă rugăm să vă ajustați setările în consecință.Traducerea automată DeepL are acum o setare generică
MT_DEEPL_API_URL
pentru a se adapta mai flexibil la diferite modele de abonament. SetareaMT_DEEPL_API_VERSION
nu mai este utilizată.Django 3.2 este acum necesar.
Actualizare de la 4.7 la 4.8
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
Nu sunt necesare etape suplimentare de actualizare în această versiune.
Upgrade from 4.8 to 4.9
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
There is a change in storing metrics, the upgrade can take long time on larger sites.
Upgrade from 4.9 to 4.10
Vă rugăm să urmați Instrucțiuni generice de actualizare pentru a efectua actualizarea.
There is a change in per-project groups, the upgrade can take long time on sites with thousands of projects.
Django 4.0 has made some incompatible changes, see Backwards incompatible changes in 4.0. Weblate still supports Django 3.2 for now, in case any of these are problematic. Most notable changes which might affect Weblate:
Dropped support for PostgreSQL 9.6, Django 4.0 supports PostgreSQL 10 and higher.
Format of
CSRF_TRUSTED_ORIGINS
was changed.
The Docker container now uses Django 4.0, see above for changes.
Actualizarea de la Python 2 la Python 3
Weblate no longer supports Python older than 3.6. In case you are still running on older version, please perform migration to Python 3 first on existing version and upgrade later. See Upgrading from Python 2 to Python 3 in the Weblate 3.11.1 documentation.
Migrarea de la alte baze de date la PostgreSQL
Dacă executați Weblate pe o altă bază de date decât PostgreSQL, ar trebui să luați în considerare migrarea la PostgreSQL, deoarece Weblate funcționează cel mai bine cu acesta. Următorii pași vă vor ghida în migrarea datelor între bazele de date. Vă rugăm să nu uitați să opriți ambele servere Web și Celery înainte de migrare, altfel s-ar putea să vă treziți cu date incoerente.
Crearea unei baze de date în PostgreSQL
De obicei, este o idee bună să executați Weblate într-o bază de date separată și într-un cont de utilizator separat:
# 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
Migrarea cu ajutorul descărcărilor Django JSON
Cea mai simplă abordare pentru migrare este utilizarea de descărcări JSON din Django. Acest lucru funcționează bine pentru instalațiile mai mici. Pe site-urile mai mari s-ar putea să doriți să folosiți în schimb pgloader, vedeți Migrarea la PostgreSQL folosind pgloader.
Adăugați PostgreSQL ca conexiune suplimentară la baza de date în
settings.py
:
DATABASES = {
"default": {
# Database engine
"ENGINE": "django.db.backends.mysql",
# Database name
"NAME": "weblate",
# Database user
"USER": "weblate",
# Database password
"PASSWORD": "password",
# Set to empty string for localhost
"HOST": "database.example.com",
# Set to empty string for default
"PORT": "",
# Additional database options
"OPTIONS": {
# In case of using an older MySQL server, which has MyISAM as a default storage
# 'init_command': 'SET storage_engine=INNODB',
# Uncomment for MySQL older than 5.7:
# 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
# If your server supports it, see the Unicode issues above
"charset": "utf8mb4",
# Change connection timeout in case you get MySQL gone away error:
"connect_timeout": 28800,
},
},
"postgresql": {
# Database engine
"ENGINE": "django.db.backends.postgresql",
# Database name
"NAME": "weblate",
# Database user
"USER": "weblate",
# Database password
"PASSWORD": "password",
# Set to empty string for localhost
"HOST": "database.example.com",
# Set to empty string for default
"PORT": "",
},
}
Executați migrările și renunțați la toate datele inserate în tabele:
weblate migrate --database=postgresql
weblate sqlflush --database=postgresql | weblate dbshell --database=postgresql
Aruncarea bazei de date tradiționale și importul în PostgreSQL
weblate dumpdata --all --output weblate.json
weblate loaddata weblate.json --database=postgresql
Ajustați
DATABASES
pentru a utiliza doar baza de date PostgreSQL ca bază de date implicită, eliminați conexiunea veche.
Weblate ar trebui să fie acum gata să ruleze din baza de date PostgreSQL.
Migrarea la PostgreSQL folosind pgloader
pgloader este un instrument generic de migrare a datelor către PostgreSQL. Îl puteți utiliza pentru a migra baza de date Weblate.
Ajustați fișierul
settings.py
pentru a utiliza PostgreSQL ca bază de date.Migrați schema din baza de date PostgreSQL:
weblate migrate weblate sqlflush | weblate dbshell
Rulați pgloader pentru a transfera datele. Următorul script poate fi folosit pentru a migra baza de date, dar poate doriți să aflați mai multe despre pgloader pentru a înțelege ce face și pentru a-l adapta la configurația dumneavoastră:
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' ;
Migrarea de la Pootle
Deoarece Weblate a fost scris inițial ca înlocuitor pentru Pootle, este posibilă migrarea conturilor de utilizator din Pootle. Puteți să descărcați utilizatorii din Pootle și să îi importați folosind importusers
.