Weblate yedeğini alma ve taşıma

Proje düzeyinde yedekler

4.14 sürümünde geldi.

Uyarı

Yedeklemeler yalnızca veri tabanı olarak PostgreSQL ya da MariaDB 10.5+ kullanıldığında geri yüklenebilir.

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 YönetimYedekler bölümünden yedekleyebilirsiniz. Bir proje oluşturulurken yedekleme geri yüklenebilir (bilgi almak için: Adding translation projects and components).

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

Yorumlar ve öneriler, bunları oluşturan kullanıcının kullanıcı adıyla yedeklenir. İçe aktarıldıktan sonra eşleşen bir kullanıcı ile ilişkilendirilir. Yedekteki kullanıcı adına sahip bir kullanıcı bulunamazsa, anonim kullanıcı ile ilişkilendirilir.

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).

BorgBackup ile kendiliğinden yedekleme

3.9 sürümünde geldi.

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 hem PostgreSQL hem de MySQL/MariaDB 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.png

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 <https://weblate.org/support/#backup> ü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. 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ı etkinleştirin.

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

İpucu

Güvenliğiniz için el ile her şeyi etkinleştirme 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 (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

Yedeklerin depolanacağı klasör için UID 1000 olmalıdır. Yoksa Weblate yedekleri bu klasöre yazamaz.

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 (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. Weblate tarafından parola olmadan sunucu ile SSH bağlantısının kurulabilmesi için kullanıcıya Weblate SSH anahtarını ekleyin (bilgi almak için: Weblate SSH anahtarı).

  6. Yerel yedeklemeler için kullanici@sunucu:/yedeklere/giden/yol şeklinde ya da uzak SSH yedeklemeleri için ``ssh://kullanici@sunucu:baglantinoktasi/yedeklere/giden/yol` şeklinde kullanın.

İpucu

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

Ayrıca bakınız

Weblate SSH anahtarı, General

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 (bilgi almak için: Yedeklemeler için dökümü yapılan veriler).

  5. Weblate yapılandırmasını (backups/settings.py, bilgi almak için: Yedeklemeler için dökümü yapılan veriler) doğru konuma kopyalayın. 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 (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. Bilgi almak için: Docker kapsayıcısı birimleri.

    Lütfen dosyaların sahiplik ve erişim izinlerinin doğru olduğundan emin olun. 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

borg list, borg extract

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 içindeki 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

Veri tabanı dökümününün pg_dump ya da mysqldump gibi veri tabanına özgü araçlar kullanılarak kaydedilmesi önerilir. Başarımı genellikle Django yedeklemesinden daha iyidir ve tüm tablolar tüm verileriyle 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ğı hakkında bilgi almak için Upgrading Weblate 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 (bilgi almak için Invoking management commands):

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. Bilgi almak için: Celery ile arka plan görevlerini kullanmak). Şu anda, bulunan veriler:

  • Weblate ayarları için settings.py (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 etkinse, tüm Weblate değişiklikleri yukarı akışa dahil edilir. Weblate tarafındaki depoları yedeklemek gerekmez çünkü veri kaybı olmadan yukarı akış konumlarından 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.

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

DATA_DIR /media konumunda tutulur.

Kullanıcı tarafından yüklenen tüm dosyaları yedeklemelisiniz (Visual context for strings 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:

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

XZ_OPT işleminden sonra tırnak işaretleri arasındaki dizge, xz seçeneklerinizi, örneğin sıkıştırma için kullanılan bellek miktarını seçmenizi sağlar. Bilgi almak için: https://linux.die.net/man/1/xz

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

$ XZ_OPT="-9" 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. :d jadmin:updategit komutunu kullanarak tüm depoları güncelleyin.

    weblate updategit --all
    

Bir Weblate kurulumunu taşımak

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