Säkerhetskopiera och flytta Weblate¶
Säkerhetskopior på projektnivå¶
Added in version 4.14.
Varning
Återställning av säkerhetskopior stöds endast när PostgreSQL eller MariaDB 10.5+ används som databas.
Projektet säkerhetskopierar allt översättningsinnehåll från Weblate (projekt, komponenter, översättningar, strängkommentarer, förslag eller kontroller). Det är lämpligt för att överföra ett projekt till en annan Weblate-instans.
Du kan göra en säkerhetskopia av projektet i Operations ↓ Backups. Säkerhetskopian kan återställas när du skapar ett projekt (se Lägga till översättningsprojekt och komponenter).
Säkerhetskopiorna innehåller för närvarande inte information om åtkomstkontroll och historik.
Kommentarerna och förslagen backas upp med ett användarnamn för den användare som skapade dem. Vid import tilldelas de en matchande användare. Om det inte finns någon användare med det användarnamnet tilldelas de en anonym användare.
De genererade säkerhetskopiorna sparas på servern enligt konfigurationen i PROJECT_BACKUP_KEEP_DAYS och PROJECT_BACKUP_KEEP_COUNT (standardinställningen är att spara högst 3 säkerhetskopior i 30 dagar).
Använd den genererade filen för att importera projektet när du Lägga till översättningsprojekt och komponenter eller i import_projectbackup.
Observera
Återställningen av säkerhetskopian kan misslyckas om återställningsservern har en annan uppsättning Språkliga definitioner eller en annan konfiguration av SIMPLIFY_LANGUAGES. Återställningen kommer att visa vilka språkkoder som inte kunde bearbetas och du kan sedan lägga till saknade språkdefinitioner manuellt.
Automatisk säkerhetskopiering med BorgBackup¶
Weblate har inbyggt stöd för att skapa säkerhetskopior av tjänsten med hjälp av BorgBackup. Borg skapar utrymmeseffektiva krypterade säkerhetskopior som kan lagras säkert i molnet. Säkerhetskopiorna kan kontrolleras i administrationsgränssnittet från fliken Backups.
Förändrat i version 4.4.1: Både PostgreSQL- och MySQL/MariaDB-databaser ingår i de automatiska säkerhetskopiorna.
Säkerhetskopiorna med Borg är inkrementella och Weblate är konfigurerat för att behålla följande säkerhetskopior:
Dagliga säkerhetskopior i 14 dagar tillbaka
Veckobackuper för 8 veckor tillbaka
Månatliga säkerhetskopior för 6 månader tillbaka
Borg-krypteringsnyckel¶
BorgBackup skapar krypterade säkerhetskopior och du kan inte återställa dem utan lösenordet. Lösenordet genereras när du lägger till en ny säkerhetskopieringstjänst och du bör kopiera det och förvara det på ett säkert ställe.
Om du använder Weblate tillhandahöll backup-lagring, vänligen säkerhetskopiera även din privata SSH-nyckel, eftersom den används för att komma åt dina säkerhetskopior.
Se även
Anpassa säkerhetskopiering¶
Databasbackupen kan konfigureras via
DATABASE_BACKUP.Säkerhetskopieringen kan anpassas med hjälp av
BORG_EXTRA_ARGS.
Weblate tillhandahöll backup-lagring¶
Det enklaste sättet att säkerhetskopiera din Weblate-instans är att köpa säkerhetskopieringstjänsten på weblate.org. Så här får du igång den:
Köp tjänsten ”Backup service” på https://weblate.org/support/#backup.
Ange den erhållna nyckeln i hanteringsgränssnittet, se Integrering av support.
Weblate ansluter till molntjänsten och hämtar åtkomstinformation för säkerhetskopiorna.
Aktivera den nya säkerhetskopieringskonfigurationen från fliken Backups.
Säkerhetskopiera dina Borg-inloggningsuppgifter så att du kan återställa säkerhetskopiorna, se Borg-krypteringsnyckel.
Råd
Det manuella steget att slå på allt finns där för din säkerhet. Utan ditt samtycke skickas inga data till det backup-arkiv som erhållits genom registreringsprocessen.
Använda anpassad säkerhetskopieringslagring¶
Du kan också använda din egen lagringsplats för säkerhetskopiorna. SSH kan användas för att lagra säkerhetskopior på den fjärranslutna destinationen, men målservrarna måste ha BorgBackup installerat.
Se även
General i Borg-dokumentationen
Lokalt filsystem¶
Det rekommenderas att ange den absoluta sökvägen för den lokala säkerhetskopian, till exempel /path/to/backup. Katalogen måste vara skrivbar för den användare som kör Weblate (se Filssystemets behörigheter). Om den inte finns försöker Weblate skapa den, men behöver rätt behörighet för att göra det.
Råd
När du kör Weblate i Docker, se till att säkerhetskopieringsplatsen är exponerad som en volym från Weblate-containern. Annars kommer säkerhetskopiorna att kasseras av Docker när containern startas om.
Ett alternativ är att placera säkerhetskopior i en befintlig volym, till exempel /app/data/borgbackup. Detta är en befintlig volym i containern.
Du kan också lägga till en ny behållare för säkerhetskopiorna i Docker Compose-filen, till exempel genom att använda /borgbackup:
services:
weblate:
volumes:
- /home/weblate/data:/app/data
- /home/weblate/borgbackup:/borgbackup
Katalogen där säkerhetskopiorna ska lagras måste ägas av UID 1000, annars kan Weblate inte skriva säkerhetskopiorna där.
Fjärrbackuper¶
För att skapa fjärrbackuper måste du installera BorgBackup på en annan server som är tillgänglig för din Weblate-distribution via SSH med hjälp av Weblate SSH-nyckeln:
Förbered en server där dina säkerhetskopior ska lagras.
Installera SSH-servern på den (den ingår som standard i de flesta Linux-distributioner).
Installera BorgBackup på den servern; de flesta Linux-distributioner har paket tillgängliga (se Installation).
Välj en befintlig användare eller skapa en ny användare som ska användas för säkerhetskopiering.
Lägg till Weblate SSH-nyckel till användarens .ssh/authorized_keys-fil, så att Weblate kan ansluta till servern via SSH utan lösenord (se Weblate SSH-nyckel).
Skapa en katalog som användaren kan skriva i, där Weblate kan fjärrkonfigurera Borg-säkerhetskopieringsarkivet, till exempel i hemkatalogen (dvs.
/home/borg/backups).Konfigurera säkerhetskopieringsplatsen i Weblate som
user@host:/home/borg/backupsellerssh://user@host:port/home/borg/backups.När funktionen är aktiverad kommer säkerhetskopieringen att startas automatiskt varje dag. Du kan också starta en säkerhetskopiering manuellt från Weblate-gränssnittet.
Råd
Weblate tillhandahöll backup-lagring ger dig automatiska fjärrbackuper utan någon ansträngning.
Se även
Återställning från BorgBackup¶
Återställ åtkomsten till ditt säkerhetskopieringsarkiv och förbered din säkerhetskopieringslösenord.
Lista alla säkerhetskopior på servern med
borg list REPOSITORY.Återställ önskad säkerhetskopia till den aktuella katalogen med hjälp av
borg extract REPOSITORY::ARCHIVE.Återställ databasen från SQL-dumpen som finns i katalogen
backupi Weblate-datakatalogen (se Dumpade data för säkerhetskopior).Kopiera Weblate-konfigurationen (
backups/settings.py, se Dumpade data för säkerhetskopior) till rätt plats, se Justera konfigurationen.När du använder Docker-containern ingår inställningsfilen redan i containern och du bör återställa de ursprungliga miljövariablerna. Filen
environment.ymlkan hjälpa dig med detta (se Dumpade data för säkerhetskopior).Kopiera hela den återställda datakatalogen till den plats som konfigurerats av
DATA_DIR.När du använder Docker-container placerar du data i datavolymen, se Docker-containervolymer.
Se till att filerna har rätt ägarskap och behörigheter, se Filssystemets behörigheter.
Borg-sessionen kan se ut så här:
$ 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:
Se även
Manuell säkerhetskopiering¶
Beroende på vad du vill spara, säkerhetskopiera den typ av data som Weblate lagrar på respektive plats.
Råd
Om du gör manuella säkerhetskopior kan du stänga av Weblates varning om bristande säkerhetskopior genom att lägga till weblate.I028 till SILENCED_SYSTEM_CHECKS i settings.py eller WEBLATE_SILENCED_SYSTEM_CHECKS för Docker.
SILENCED_SYSTEM_CHECKS.append("weblate.I028")
Databas¶
Den faktiska lagringsplatsen beror på din databasinställning.
Råd
Databasen är den viktigaste lagringsplatsen. Ställ in regelbundna säkerhetskopieringar av din databas. Utan databasen försvinner alla översättningar.
Inbyggd databasbackup¶
Det rekommenderade tillvägagångssättet är att spara en dump av databasen med hjälp av databasens egna verktyg, såsom pg_dump eller mysqldump. Det fungerar vanligtvis bättre än Djangos säkerhetskopiering och återställer kompletta tabeller med all data.
Du kan återställa denna säkerhetskopia i en nyare version av Weblate, som kommer att utföra alla nödvändiga migreringar när den körs i migrate. Se Uppgradering av Weblate för mer detaljerad information om hur du uppgraderar mellan versioner.
Django-databasbackup¶
Alternativt kan du säkerhetskopiera din databas med hjälp av Djangos kommando dumpdata. På så sätt är säkerhetskopian databasoberoende och kan användas om du vill byta databasbackend.
Innan du återställer databasen måste du köra exakt samma version av Weblate som säkerhetskopian skapades på. Detta är nödvändigt eftersom databasstrukturen förändras mellan olika versioner och du annars riskerar att skada data på något sätt. Efter att ha installerat samma version kör du alla databasmigreringar med migrate.
Efteråt kommer vissa poster redan att ha skapats i databasen och du kommer också att ha dem i databasens säkerhetskopia. Det rekommenderade tillvägagångssättet är att radera sådana poster manuellt med hjälp av administrationsskalet (se Använda administrationskommandon):
weblate shell
>>> from weblate.auth.models import User
>>> User.objects.get(username='anonymous').delete()
Filer¶
Om du har tillräckligt med utrymme för säkerhetskopiering kan du helt enkelt säkerhetskopiera hela DATA_DIR. Detta är ett säkert val även om det innehåller några filer som du inte vill ha. I följande avsnitt beskrivs i detalj vad du bör säkerhetskopiera och vad du kan hoppa över.
Dumpade data för säkerhetskopior¶
Förändrat i version 4.7: Miljödumpen lades till som environment.yml för att underlätta återställningen i Docker-miljöerna.
Lagras i DATA_DIR /backups.
Weblate sparar olika data här, och du kan inkludera dessa filer för mer kompletta säkerhetskopior. Filerna uppdateras dagligen (kräver en körande Celery beats-server, se Bakgrundsuppgifter med Celery). För närvarande inkluderar detta:
Weblate-inställningar som
settings.py(det finns också en utökad version isettings-expanded.py).PostgreSQL-databasbackup som
database.sql.Miljö dump som
environment.yml.
Databasbackuperna sparas som vanlig text som standard, men de kan också komprimeras eller helt hoppas över med hjälp av DATABASE_BACKUP.
För att återställa databasbackupen, ladda den med hjälp av databasverktyg, till exempel:
psql --file=database.sql weblate
Versionskontrollförvar¶
Lagras i DATA_DIR /vcs.
Versionskontrollförvaren innehåller en kopia av dina uppströmsförvar med Weblate-ändringar. Om du har Skicka vid incheckning aktiverat för alla dina översättningskomponenter inkluderas alla Weblate-ändringar uppströms. Det finns inget behov av att säkerhetskopiera förvaren på Weblate-sidan eftersom de kan klonas igen från uppströmsplatsen utan dataförlust.
SSH- och GPG-nycklar¶
Lagras i DATA_DIR /ssh och DATA_DIR /home.
Om du använder SSH- eller GPG-nycklar som genererats av Weblate bör du säkerhetskopiera dessa platser. Annars förlorar du de privata nycklarna och måste generera nya.
Användaruppladdade filer¶
Lagras i DATA_DIR /media.
Du bör säkerhetskopiera alla filer som användare har laddat upp (t.ex. Visuellt sammanhang för strängar).
Selleriuppgifter¶
Celery-uppgiftskön kan innehålla viss information, men behövs vanligtvis inte för en säkerhetskopiering. Du förlorar högst uppdateringar som ännu inte har bearbetats till översättningsminnet. Det rekommenderas ändå att utföra fulltext- eller arkivuppdateringen vid återställningen, så det är inget problem att förlora dessa.
Se även
Kommandorad för manuell säkerhetskopiering¶
Med hjälp av ett cron-jobb kan du ställa in ett Bash-kommando som ska köras dagligen, till exempel:
$ tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups vcs ssh home media fonts secret
Du kan anpassa listan över mappar och filer efter dina behov. För att undvika att spara översättningsminnet (i mappen för säkerhetskopior) kan du använda:
$ 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
Återställa manuell säkerhetskopia¶
Återställ alla data som du har säkerhetskopierat.
Uppdatera alla arkiv med
updategit.weblate updategit --all
Flytta en Weblate-installation¶
Flytta din installation till ett annat system genom att följa instruktionerna för säkerhetskopiering och återställning ovan.