Weblate yazılımını güncellemek#

Docker kalıbı güncellemeleri#

Resmi Docker kalıbına (bilgi almak için Docker ile kurmak) tüm Weblate yükseltme adımları bütünleştirilmiştir. Genellikle güncel sürümü çekmenin dışında el ile yapılması gereken bir adım bulunmaz.

Genel yükseltme yönergeleri#

Yükseltmeden önce, lütfen değişmiş olabilecekleri için güncel Yazılım gereksinimleri değerini denetleyin. Tüm gereksinimler kurulduktan ya da güncellendikten sonra, lütfen settings.py dosyasını yapılandırmadaki değişikliklere uygun şekilde ayarlayın (doğru değerler için settings_example.py bölümüne bakabilirsiniz).

Yükseltmeden önce her zaman Sürüme özel yönergeler bölümünü denetleyin. Bazı sürümleri atlamanız durumunda, lütfen yükseltmede atladığınız tüm sürümlerin yönergelerini izleyin. Bazen sorunsuz bir aktarım yapmak için önce bazı ara sürümlere yükseltmek daha iyidir. Bir kerede birkaç sürüm yukarı yükseltilebilir, ancak tek sürüm yükseltmelerindeki kadar iyi denenmemiştir.

Not

Yükseltmenin yapılamaması durumunda veri tabanını önceki sürüme döndürebilmeniz için yükseltmeden önce veri tabanının tam yedeğini almanız önerilir. Bilgi almak için: Weblate yedeğini alma ve taşıma.

  1. wsgi ve Celery işlemlerini durdurun. Yükseltme işlemi, veri tabanında uyumsuz değişiklikler yapabilir. Bu nedenle yükseltme sırasında eski işlemlerin çalışmasını önlemek her zaman daha güvenli olur.

  2. Weblate kodunu yükseltin.

    Pip kurulumları için şöyle yapılabilir:

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

    Ya da yalnızca güncel sürümü edinmek istiyorsanız:

    pip install -U "Weblate[all]"
    

    İsteğe bağlı bağımlılıkların tümünü kurmak istemiyorsanız şunu yapın:

    pip install -U Weblate
    

    Git checkout ile yeni kaynak kodunu almanız ve kurulumunuzu güncellemeniz gerekir:

    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 -r requirements.txt
    # Install optional dependencies directly when not using virtualenv
    pip install --upgrade -r requirements-optional.txt
    
  3. Yeni Weblate sürümünde yeni İsteğe bağlı bağımlılıklar bulunabilir. Lütfen istediğiniz özellikleri kapsayıp kapsamadığını denetleyin.

  4. Yapılandırma dosyasını yükseltin. Gerekli adımlar için settings_example.py ya da Sürüme özel yönergeler dosyalarına bakabilirsiniz.

  5. Veri tabanı yapısını yükseltin:

    weblate migrate --noinput
    
  6. Güncellenmiş durağan dosyaları derleyin (bilgi almak için: Sunucuyu çalıştırmak ve Durağan dosyalar sunmak):

    weblate collectstatic --noinput --clear
    
  7. JavaScript ve CSS dosyalarını sıkıştırın (isteğe bağlı, bilgi almak için: İstemci varlıklarının sıkıştırılması):

    weblate compress
    
  8. Git üzerindeki sürümü çalıştırıyorsanız, her yükseltme yaptığınızda yerel ayar dosyalarını da yeniden oluşturmanız gerekir. Bu işlemi şu şekilde yapabilirsiniz:

    weblate compilemessages
    
  9. Kurulumunuzun doğru olduğunu doğrulayın (bilgi almak için: :ref:`production’):

    weblate check --deploy
    
  10. Celery işlemini yeniden başlatın (bilgi almak için: Celery ile arka plan görevlerini kullanmak).

Sürüme özel yönergeler#

5.0 sürümünde değişti: Sürüme özel yönergeler sürüm notlarına eklendi. Bilgi almak için: Weblate 5.0.2.

Eski bir büyük sürümden yükseltme#

Yükseltmelerde büyük sürümler atlanamaz. Her zaman ilk işlem olarak büyük sürümün son yama düzeyine yükseltin. Bu adımı atlayan yükseltme işlemleri desteklenmez ve bozulur.

2.x sürümünden yükseltiyorsanız, her zaman ilk olarak 3.0.1 sürümüne yükseltin. Ardından 3.x serisinde yükseltme işlemini sürdürün.

3.x sürümünden yükseltme yapıyorsanız, her zaman ilk olarak 4.0.4 sürümüne yükseltin. Ardından 4.x serisinde yükseltmeyi sürdürün.

Diğer veri tabanlarından PostgreSQL üzerine aktarmak#

Weblate için PostgreSQL dışında başka bir veri tabanı kullanıyorsanız, Weblate ile en iyi başarımı gösteren PostgreSQL kullanmaya geçmeyi düşünmelisiniz. Aşağıdaki adımlar, verilerinizi veri tabanları arasında aktarmakta size yol gösterir. Lütfen aktarımdan önce hem site hem de Celery sunucularını durdurmayı unutmayın, yoksa tutarsız verilerle karşılaşabilirsiniz.

PostgreSQL üzerinde bir veri tabanı oluşturmak#

Weblate için ayrı bir kullanıcı hesabı ile ayrı bir veri tabanı kullanmak genellikle iyi bir fikirdir:

# 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

Django JSON dökümlerini kullanarak aktarmak#

Aktarım için en basit yaklaşım, Django JSON dökümlerini kullanmaktır. Bu yöntem, küçük kurulumlar için iyidir. Daha büyük kurulumlarda bunun yerine pgloader kullanmak isteyebilirsiniz. Bilgi almak için: Pgloader ile PostgreSQL üzerine aktarmak.

  1. PostgreSQL seçeneğini settings.py dosyasına ek veritabanı bağlantısı olarak ekleyin:

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": "",
    },
}
  1. Aktarımları yürütün ve tablolara eklenen tüm verileri kaldırın:

weblate migrate --database=postgresql
weblate sqlflush --database=postgresql | weblate dbshell --database=postgresql
  1. Eski veri tabanlarının dökümünü alın ve PostgreSQL üzerine aktarın

weblate dumpdata --all --output weblate.json
weblate loaddata weblate.json --database=postgresql
  1. Varsayılan olarak yalnızca PostgreSQL veri tabanının kullanılması için DATABASES ayarını yapın. Eski bağlantıyı kaldırın.

Böylece Weblate artık PostgreSQL veri tabanı ile çalışmaya hazır olmalıdır.

Pgloader ile PostgreSQL üzerine aktarmak#

pgloader, verileri PostgreSQL üzerine taşımak için kullanılan bir genel aktarım aracıdır. Weblate veri tabanını aktarmak için kullanabilirsiniz.

  1. Veri tabanı olarak PostgreSQL kullanmak için settings.py ayarınızı yapın.

  2. Şemayı PostgreSQL veri tabanına aktarın:

    weblate migrate
    weblate sqlflush | weblate dbshell
    
  3. Verileri aktarmak için pgloader uygulamasını çalıştırın. Veri tabanını aktarmak için aşağıdaki betik kullanılabilir, ancak ne yaptığını anlamak ve kurulumunuza uyacak şekilde küçük ayar değişikleri yapmak için pgloader ile ilgili ayrıntılı bilgi almak isteyebilirsiniz:

    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 üzerinden aktarmak#

Weblate başlangıçta Pootle yerine yazıldığından, kullanıcı hesapları Pootle üzerinden aktarılabilir. Kullanıcıları Pootle üzerinden indirip ve importusers ile içe aktarabilirsiniz.