← Cloudflare D1 / d1 / reference
Zálohy (starší verze)
D1 nabízí vestavěnou podporu pro vytváření a obnovu záloh vašich databází pomocí wrangler v3, včetně podpory plánovaných automatických záloh a ruční správy záloh.
Automatické zálohy
D1 za vás automaticky každou hodinu zálohuje vaše databáze a uchovává zálohy po dobu 24 hodin. Zálohy po dobu svého běhu blokují přístup k databázi. Ve většině případů to trvá jen sekundu nebo dvě a všechny požadavky, které přijdou během zálohování, se zařadí do fronty.
Pro zobrazení a správu těchto záloh, včetně jakýchkoli manuálních záloh, které jste vytvořili, můžete použít d1 backup list <DATABASE_NAME> příkaz k výpisu jednotlivých záloh.
Pokud chcete například vypsat všechny zálohy databáze D1 s názvem existing-db:
wrangler d1 backup list existing-db
┌──────────────┬──────────────────────────────────────┬────────────┬─────────┐
│ created_at │ id │ num_tables │ size │
├──────────────┼──────────────────────────────────────┼────────────┼─────────┤
│ 1 hour ago │ 54a23309-db00-4c5c-92b1-c977633b937c │ 1 │ 95.3 kB │
├──────────────┼──────────────────────────────────────┼────────────┼─────────┤
│ <...> │ <...> │ <...> │ <...> │
├──────────────┼──────────────────────────────────────┼────────────┼─────────┤
│ 2 months ago │ 8433a91e-86d0-41a3-b1a3-333b080bca16 │ 1 │ 65.5 kB │
└──────────────┴──────────────────────────────────────┴────────────┴─────────┘% id každé zálohy umožňuje stáhnout nebo obnovit konkrétní zálohu.
Ruční zálohování databáze
Než provedete rozsáhlé změny schématu, ručně vložíte nebo odstraníte data, nebo jinak upravíte databázi, kterou aktivně používáte, je dobrým zvykem nejprve vytvořit ruční zálohu. D1 umožňuje kdykoli vytvořit zálohu databáze a uloží ji za vás. Zvažte také používání migrací ke zjednodušení změn stávající databáze.
Chcete-li zálohovat databázi D1, musíte mít:
- Cloudflare Nainstalované Wrangler CLI
- Existující databáze D1, kterou chcete zálohovat.
Pokud chcete například vytvořit ruční zálohu databáze D1 s názvem example-db, zavolejte d1 backup create.
wrangler d1 backup create example-db┌─────────────────────────────┬──────────────────────────────────────┬────────────┬─────────┬───────┐
│ created_at │ id │ num_tables │ size │ state │
├─────────────────────────────┼──────────────────────────────────────┼────────────┼─────────┼───────┤
│ 2023-02-04T15:49:36.113753Z │ 123a81a2-ab91-4c2e-8ebc-64d69633faf1 │ 1 │ 65.5 kB │ done │
└─────────────────────────────┴──────────────────────────────────────┴────────────┴─────────┴───────┘Zálohování větších databází, zejména těch o velikosti několika megabajtů (MB) s mnoha tabulkami, může trvat několik sekund, přičemž state sloupec ve výstupu vám ukáže, kdy je záloha dokončena.
Stažení zálohy lokálně
Chcete-li stáhnout zálohu lokálně, zavolejte wrangler d1 backup download <DATABASE_NAME> <BACKUP_ID>. Použijte wrangler d1 backup list <DATABASE_NAME> k výpisu dostupných záloh, včetně jejich ID, pro danou databázi D1.
Pokud chcete například stáhnout konkrétní zálohu databáze s názvem example-db:
wrangler d1 backup download example-db 123a81a2-ab91-4c2e-8ebc-64d69633faf1
🌀 Downloading backup 123a81a2-ab91-4c2e-8ebc-64d69633faf1 from 'example-db'
🌀 Saving to /Users/you/projects/example-db.123a81a2.sqlite3
🌀 Done!Záloha databáze se stáhne do aktuálního pracovního adresáře v nativním formátu SQLite3. Pro import lokální databáze si přečtěte dokumentace k importu dat do D1.
Obnova ze zálohy
Obnovení ze zálohy přepíše aktuálně běžící verzi databáze zálohovanou verzí. Tabulky (a jejich data), které v záloze neexistují, přestanou existovat i v aktuální verzi databáze, a dotazy, které na nich závisí, selžou.
Pro obnovení předchozí zálohy databáze D1 s názvem existing-db, předejte ID této zálohy do d1 backup restore:
wrangler d1 backup restore existing-db 6cceaf8c-ceab-4351-ac85-7f9e606973e3Restoring existing-db from backup 6cceaf8c-ceab-4351-ac85-7f9e606973e3....
Done!Jakmile se obnovení dokončí, všechny dotazy vůči databázi se okamžitě zaměří na aktuální (obnovenou) verzi.