Weblate yedeğini alma ve taşıma

Proje düzeyinde yedekler

Added in version 4.14.

Proje, Weblate üzerindeki tüm çeviri içeriğini yedekler (proje, bileşenler, çeviriler, dizge yorumları, öneriler ve denetimler). Bir projeyi başka bir Weblate kopyasına aktarmak için uygundur.

Bir projeyi İşlemlerYedekler bölümünden yedekleyebilirsiniz. Bir proje oluşturulurken yedekleme geri yüklenebilir (ayrıntılı bilgi almak için: Çeviri projelerini ve bileşenleri eklemek).

Şu anda yedeklerde erişim denetimi ve geçmiş bilgileri bulunmuyor.

The comments and suggestions are backed up with the username of the user who did create them. Upon import it is assigned to a matching user. If there is no user with such username, it is assigned to anonymous user.

Oluşturulan yedekler, PROJECT_BACKUP_KEEP_DAYS ve PROJECT_BACKUP_KEEP_COUNT tarafından yapılandırıldığı şekilde sunucuda tutulur (varsayılan olarak 30 gün boyunca en fazla 3 yedek tutulur).

Yüklenen proje yedeklerinin içe aktarma doğrulaması PROJECT_BACKUP_IMPORT_MAX_MEMBERS, PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE, PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE ve PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO kullanılarak ayarlanabilir.

Proje içe aktarmak için Çeviri projelerini ve bileşenleri eklemek sırasında oluşturulan dosyayı ya da import_projectbackup dosyasını kullanın.

Not

Geri yükleme sunucusunda farklı bir Dil tanımları kümesi veya farklı bir SIMPLIFY_LANGUAGES yapılandırması varsa yedek geri yüklenemeyebilir. Geri yükleme size hangi dil kodlarının işlenemediğini söyler. Böylece eksik dil tanımlarını el ile ekleyebilirsiniz.

BorgBackup ile kendiliğinden yedekleme

Weblate, BorgBackup kullanarak hizmet yedeklerinin alınmasını destekler. Borg, bulutta güvenli bir şekilde saklanabilen, depolama alanı açısından etkili şifrelenmiş yedekler alır. Yedekler, yönetim arayüzünde Yedekler sekmesinden yönetilebilir.

4.4.1 sürümünde değişti: Kendiliğinden alınan yedeklere PostgreSQL veri tabanları katılır.

Borg kullanan yedekler artımlıdır ve Weblate şu yedekleri koruyacak şekilde yapılandırılır:

  • 14 gün geriye dönük günlük yedekler

  • 8 hafta geriye dönük haftalık yedekler

  • 6 ay geriye dönük aylık yedekler

../_images/backups.webp

Borg şifreleme anahtarı

BorgBackup şifrelenmiş yedekler alır ve parola olmadan bunları geri yükleyemezsiniz. Parola, yeni bir yedekleme hizmeti eklerken oluşturulur ve bunu kopyalayıp güvenli bir yerde saklamanız gerekir.

Weblate tarafından sunulan yedekleme depolama alanı kullanıyorsanız, yedeklerinize erişmek için kullanıldığından, lütfen kişisel SSH anahtarınızı da yedekleyin.

Ayrıca bakınız

borg init

Yedeklemeyi özelleştirme

Weblate tarafından sunulan yedekleme depolama alanı

Weblate bulut sunucunuzu yedeklemenin en kolay yolu weblate.org üzerinden yedekleme hizmeti satın almaktır. Şu şekilde çalışır duruma getirebilirsiniz:

  1. https://weblate.org/support/#backup üzerinden Yedekleme hizmeti satın alın.

  2. Size verilen anahtarı yönetim bölümüne yazın. Ayrıntılı bilgi almak için: Destek bütünleştirmesi.

  3. Weblate bulut hizmeti ile bağlantı kurar ve yedekler için erişim bilgilerini alır.

  4. Yedekler sekmesinden yeni yedekleme yapılandırmasını açın.

  5. Yedekleri geri yükleyebilmek için Borg kimlik doğrulama bilgilerinizi yedekleyin. Ayrıntılı bilgi almak için: Borg şifreleme anahtarı.

İpucu

Güvenliğiniz için her şeyi el ile açma adımı bulunur. İzniniz olmadan, hesap açma işlemi yoluyla elde edilen yedekleme havuzuna herhangi bir veri gönderilmez.

Özel yedekleme depolama alanını kullanmak

Yedekler için kendi depolama alanınızı da kullanabilirsiniz. SSH, yedekleri uzak hedefte depolamak için kullanılabilir. Hedef sunucuda BorgBackup kurulu olmalıdır.

Ayrıca bakınız

Borg belgelerindeki General bölümünde

Yerel dosya sistemi

Yerel yedekleme için mutlak yolun belirtilmesi önerilir. Örneğin ‘/yedek/klasoru/yolu’. Klasör, Weblate çalıştıran kullanıcı tarafından yazılabilir olmalıdır (ayrıntılı bilgi almak için: Dosya sistemi izinleri). Klasör yoksa, Weblate oluşturmaya çalışır, ancak bunu yapmak için uygun izinlere gerek duyar.

İpucu

Docker üzerinde Weblate çalıştırırken, lütfen yedekleme konumunun Weblate kapsayıcısında bir birim olarak gösterildiğinden emin olun. Yoksa, içinde bulunduğu kapsayıcı yeniden başlatıldığında yedekler Docker tarafından atılır.

Yedekleri /app/data/borgbackup gibi var olan bir birime yerleştirmek bir seçenek olabilir. Bu birim kapsayıcıda vardır.

Docker Compose dosyasındaki yedekler için örneğin /borgbackup kullanarak yeni bir kapsayıcı da ekleyebilirsiniz:

services:
  weblate:
    volumes:
      - /home/weblate/data:/app/data
      - /home/weblate/borgbackup:/borgbackup

The directory where backups will be stored has to be owned by UID 1000, otherwise Weblate won’t be able to write the backups there.

Uzak yedeklemeler

Uzak yedekler almak için, Weblate SSH anahtarını kullanarak SSH üzerinden Weblate dağıtımınız için erişilebilen başka bir sunucuya BorgBackup kurmanız gerekir:

  1. Yedeklerinizin depolanacağı bir sunucu hazırlayın.

  2. SSH sunucusunu üzerine kurun (çoğu Linux dağıtımında varsayılan olarak bulunur).

  3. Bu sunucuya BorgBackup kurun. Çoğu Linux dağıtımında kullanılabilecek paketleri bulunur (ayrıntılı bilgi almak için: Installation).

  4. Var olan bir kullanıcı seçin ya da yedekleme için kullanılacak yeni bir kullanıcı ekleyin.

  5. Kullanıcının .ssh/authorized_keys dosyasına Weblate SSH anahtarını ekleyin. Böylece Weblate parola olmadan sunucu ile SSH bağlantısı kurabilir (ayrıntılı bilgi almak için: Weblate SSH anahtarı).

  6. Borg yedekleme deposunun Weblate tarafından uzaktan kurulabileceği, örneğin home klasöründe (yani /home/borg/backups) kullanıcı tarafından yazılabilir bir klasör oluşturun.

  7. Weblate yedekleme konumunu kullanici@sunucu:/home/borg/yedekler ya da ssh://kullanici@sunucu:baglantinoktasi/home/borg/backups olarak yapılandırın.

  8. Once enabled, the backups will be triggered automatically daily. You can also manually trigger a backup from the Weblate UI or using backup.

İpucu

Weblate tarafından sunulan yedekleme depolama alanı herhangi bir çaba harcamadan kendiliğinden uzak yedekleme olanağı sağlar.

Ayrıca bakınız

BorgBackup yedeklerini geri yüklemek

  1. Yedekleme deponuza erişimi geri yükleyin ve yedekleme parolanızı hazırlayın.

  2. Sunucudaki tüm yedekleri borg list REPOSITORY komutunu kullanarak listeleyin.

  3. İstediğiniz yedeği geçerli klasöre geri yüklemek için borg extract REPOSITORY::ARCHIVE komutunu kullanın.

  4. Veri tabanını, Weblate data klasörü içindeki backup klasörüne kaydedilen SQL dökümünden geri yükleyin (ayrıntılı bilgi almak için: Yedeklemeler için dökümü yapılan veriler).

  5. Weblate yapılandırmasını (backups/settings.py, ayrıntılı bilgi almak için: Yedeklemeler için dökümü yapılan veriler) doğru konuma kopyalayın. Ayrıntılı bilgi almak için: Yapılandırmayı ayarlama.

    Docker kapsayıcısını kullanırken, ayarlar dosyası zaten kapsayıcı içine eklenmiştir ve özgün ortam değişkenlerini geri yüklemeniz gerekir. environment.yml dosyası bu konuda size yardımcı olabilir (ayrıntılı bilgi almak için: Yedeklemeler için dökümü yapılan veriler).

  6. Geri yüklenen tüm data klasörünü DATA_DIR ile yapılandırılmış konuma kopyalayın.

    Docker kapsayıcısını kullanırken verileri veri birimine yerleştirin. Ayrıntılı bilgi almak için: Docker kapsayıcısı birimleri.

    Lütfen dosyaların sahiplik ve izinlerinin doğru olduğundan emin olun. Ayrıntılı bilgi almak için: Dosya sistemi izinleri.

Borg oturumu şunun gibi görünmelidir:

$ borg list /tmp/xxx
Enter passphrase for key /tmp/xxx:
2019-09-26T14:56:08 Thu, 2019-09-26 14:56:08 [de0e0f13643635d5090e9896bdaceb92a023050749ad3f3350e788f1a65576a5]
$ borg extract /tmp/xxx::2019-09-26T14:56:08
Enter passphrase for key /tmp/xxx:

Ayrıca bakınız

Docker temelli kurulumu geri yüklemek

Aşağıdaki adımlar, birlikte gelen PostgreSQL ve Valkey hizmetlerini kullanan resmi Docker Compose kurulumu kullanıldığını varsayar. Ayrıntılı bilgi almak için: Docker ile kurmak. Dağıtımınız dışarıdan bir veri tabanı veya özelleştirilmiş bir Compose dosyası kullanıyorsa, veri tabanı ve birim adımlarını bu ortama göre değiştirin.

Geri yüklenen dağıtımla eşleşen bir Docker Compose çıkışı ile başlayın. Özgün Compose değişikliklerinizi, parolalarınızı ve ortam değişkenlerinizi geri yükleyin. Yedeklemeler için dökümü yapılan veriler ile gelen environment.yml dosyası bu konuda yardımcı olabilir, ancak kendiliğinden içe aktarılmaz.

  1. Yedekleme arşivini BorgBackup yedeklerini geri yüklemek ile geri yükleyin ya da Weblate veri klasörünün ve backups/database.sql kullanılabilir olması için yedeğinizi el ile ayıklayın.

  2. Veri tabanına veya veri birimine yazabilen hizmetleri durdurun:

    docker compose stop weblate cache
    
  3. PostgreSQL birimini yeniden oluşturun.

    docker compose stop database
    docker compose rm -v database
    docker volume remove weblate-docker_postgres-data
    

    Birim adı, Compose projesinin adına bağlıdır ve weblate-docker_postgres-data içindekinden farklı olabilir. Herhangi bir disk bölümünü kaldırmadan önce kurulumunuzu denetleyin.

  4. Veri tabanı hizmetini başlatın:

    docker compose up -d database
    
  5. Veri tabanı yedeğini geri yükleyin:

    cat backups/database.sql | docker compose exec -T database psql --username weblate --dbname weblate
    

    Compose yapılandırmanızda veri tabanı adının POSTGRES_DB ile ve kullanıcının POSTGRES_USER ile aynı olduğundan emin olun.

  6. Weblate veri klasörünü /app/data olarak bağlanmış Docker veri birimine geri yükleyin. Ayrıntılı bilgi almak için:Docker kapsayıcısı birimleri. Bu birimdeki dosyaların sahibi UID 1000 olmalıdır. Ayrıntılı bilgi almak için: Dosya sistemi izinleri.

  7. Kalan hizmetleri başlatın ve günlükleri izleyin:

    docker compose up -d
    docker compose logs -f
    

    Weblate kapsayıcısı, başlangıçta veri tabanı aktarımlarını yapar. Weblate sürümü de yükseltiyorsanız şurayı izleyin Docker kapsayıcısını yükseltmek.

  8. Geri yüklemeden sonra depoları yenileyin:

    docker compose exec --user weblate weblate weblate updategit --all
    

El ile yedekleme

Neyi kaydetmek istediğinize bağlı olarak, Weblate tarafından her biri ilgili yere kaydedilmiş olan veri türünü yedekleyin.

İpucu

El ile yedekleme yapıyorsanız, Weblate yedekleme eksikliği uyarısını, settings.py dosyasındaki SILENCED_SYSTEM_CHECKS ya da Docker için WEBLATE_SILENCED_SYSTEM_CHECKS seçeneğini weblate.I028 ile ekleyerek kapatmak isteyebilirsiniz.

SILENCED_SYSTEM_CHECKS.append("weblate.I028")

Veri tabanı

Gerçek depolama konumu, veri tabanı kurulumunuza bağlıdır.

İpucu

Veri tabanı en önemli depolama alanıdır. Veri tabanınızı düzenli olarak yedeklenecek biçimde ayarlayın. Veri tabanı olmadan, tüm çeviriler kaybolur.

Doğal veri tabanı yedeklemesi

Önerilen yaklaşım, pg_dump gibi veri tabanına özgü araçları kullanarak veri tabanının dökümünü kaydetmektir. Genellikle başarımı Django yedeklemesinden daha iyidir ve tüm tablolar tüm verileriyle birlikte geri yüklenir.

Bu yedeği daha yeni bir Weblate sürümünde geri yükleyebilirsiniz, migrate içinde çalışırken gerekli tüm aktarımlar yapılır. Sürümler arasında nasıl yükseltme yapılacağı ile ilgili ayrıntılı bilgi almak için Weblate yazılımını güncellemek bölümüne bakabilirsiniz.

Django veri tabanı yedeklemesi

Alternatif olarak, dumpdata Django komutunu kullanarak veri tabanınızı yedekleyebilirsiniz. Bu şekilde, alınan yedek veri tabanından bağımsız olur ve veri tabanı işleyicisini değiştirmek istediğinizde kullanılabilir.

Veri tabanını geri yüklemeden önce, yedeklemenin yapıldığı Weblate sürümüyle tam olarak aynı sürümü çalıştırıyor olmanız gerekir. Veri tabanı yapısı sürümler arasında değiştiğinden ve verilerin bir şekilde bozulmasına neden olacağından böyle olması gereklidir. Aynı sürümü kurduktan sonra, tüm veri tabanı aktarımlarını yapmak için migrate komutunu kullanın.

Daha sonra veri tabanında bazı kayıtlar zaten oluşturulmuş olacak ve bunlar veri tabanı yedeğinde de bulunuyor olacak. Önerilen yaklaşım, yönetim kabuğunu kullanarak bu tür kayıtları el ile silmektir (ayrıntılı bilgi almak için: Yönetim komutlarını çağırmak):

weblate shell
>>> from weblate.auth.models import User
>>> User.objects.get(username='anonymous').delete()

Dosyalar

Yeterli yedekleme alanınız varsa, DATA_DIR klasörünü tümüyle yedekleyin. Bu yedek, istemediğiniz bazı dosyaları içerse bile en güvenlisidir. Aşağıdaki bölümlerde, neleri yedeklemeniz gerektiğini ve neleri atlayabileceğinizi ayrıntılı olarak görebilirsiniz.

Yedeklemeler için dökümü yapılan veriler

4.7 sürümünde değişti: Docker ortamlarında geri yüklemeye yardımcı olacak ortam dökümü environment.yml olarak eklenmiştir.

DATA_DIR /backups içine kaydedilir.

Weblate buraya çeşitli verileri döker. Daha eksiksiz yedeklemeler için bu dosyaları ekleyebilirsiniz. Dosyalar günlük olarak güncellenir (çalışan bir Çeler beats sunucusu gerekir. Ayrıntılı bilgi almak için: Celery ile arka plan görevlerini kullanmak). Şu anda, bulunan veriler:

  • Weblate ayarları için settings.py dosyası (settings-expanded.py dosyasında genişletilmiş bir sürümü de bulunur).

  • PostgreSQL veri tabanı yedeği için database.sql.

  • Ortam dökümü için environment.yml.

Veri tabanı yedekleri varsayılan olarak düz metin biçiminde kaydedilir. Ancak DATABASE_BACKUP seçeneği ile sıkıştırılabilir ya da tümüyle atlanabilir.

Veri tabanı yedeğini geri yüklemek için veri tabanı araçlarını kullanın. Örneğin:

psql --file=database.sql weblate

Sürüm denetimi depoları

DATA_DIR /vcs konumunda tutulur.

Sürüm denetimi depolarında, Weblate değişiklikleriyle birlikte yukarı akış depolarınızın bir kopyası bulunur. Tüm çeviri bileşenleriniz için İşleme ile itme seçeneği kullanıma alınmışsa, tüm Weblate değişiklikleri yukarı akışa katılır. Weblate tarafındaki depoları yedeklemek gerekmez çünkü veri kaybı olmadan yukarı akış konumundan yeniden kopyalanabilir.

SSH ve GPG anahtarları

DATA_DIR /ssh ve DATA_DIR /home içinde bulunur.

Weblate tarafından oluşturulmuş SSH ya da GPG anahtarlarını kullanıyorsanız, bu konumları yedeklemeniz gerekir. Yoksa kişisel anahtarlarınızı kaybedersiniz ve yeniden oluşturmanız gerekir.

Oluşturulan SSH sarmalayıcı betikleri CACHE_DIR içinde saklanır ve yedeklenmesi gerekmez.

Kullanıcının yüklediği dosyalar

DATA_DIR /media konumunda tutulur.

Kullanıcı tarafından yüklenen tüm dosyaları yedeklemelisiniz (Ekran görüntüleri ve görsel bağlam gibi).

Celery görevleri

Celery görev kuyruğunda bazı bilgiler bulunabilir. Ancak genellikle yedeklenmesi gerekli değildir. En fazla, henüz çeviri belleğine işlenmemiş güncellemeleri kaybedersiniz. Gene de, tam metin ya da depo güncellemesinin geri yüklendikten sonra yapılması önerilir, bu nedenle bunların kaybedilmesi bir sorun oluşturmaz.

Komut satırından el ile yedek alma

Bir zamanlanmış görev (cron) kullanarak, her gün yürütülecek bir Bash komutu ayarlayabilirsiniz. Örneğin:

$ tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups vcs ssh home media fonts secret

Klasör ve dosya listesini gereksinimlerinize göre ayarlayabilirsiniz. Çeviri belleğini (yedeklemeler klasöründe) kaydetmekten kaçınmak için şunu kullanabilirsiniz:

$ tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups/database.sql backups/settings.py vcs ssh home media fonts secret

Yedeği el ile geri yüklemek

  1. Yedeklediğiniz tüm verileri geri yükleyin.

  2. updategit komutunu kullanarak tüm depoları güncelleyin.

    weblate updategit --all
    

Bir Weblate kurulumunu taşımak

Yukarıdaki yedekleme ve geri yükleme yönergesini izleyerek kurulumunuzu farklı bir sisteme taşıyın.