ข้ามไปยังเนื้อหา
Dee Wan 1.0 ยังอยู่ระหว่างพัฒนาและยังไม่เปิดตัว (pre-MVP) — ดู ขอบเขตผลิตภัณฑ์ 1.0

คู่มือกู้คืนเว็บไซต์แบบสแตนด์อโลน

วิธีกู้คืนข้อมูลและสื่อของเว็บไซต์แบบสแตนด์อโลนด้วยเครื่องมือของผู้ให้บริการเอง Dee Wan ไม่มีบริการสำรองข้อมูล โครงการนี้ยังไม่เคยรันขั้นตอนใดในหน้านี้กับ deployment จริง ซ้อมกับสำเนาที่ทิ้งได้ก่อนพึ่งพาขั้นตอนเหล่านี้

คำสั่ง Wrangler ด้านล่างเป็นของ Cloudflare ตรวจพารามิเตอร์และข้อจำกัดของ D1 เมื่อ 2026-10-19 กับเอกสารอ้างอิงคำสั่ง R2, คู่มือนำเข้าและส่งออก D1 และเอกสารอ้างอิง D1 Time Travel รีโพซิทอรีนี้รันเองเฉพาะ wrangler d1 export (scripts/d1.ts)

ส่วน อยู่ที่ไหน กู้คืนด้วย
โค้ด รีโพซิทอรีของคุณ Git คอมมิตระบุโค้ดชุดนั้น
แถวเนื้อหาที่สร้าง ตารางที่สร้างในฐานข้อมูล D1 ของคุณ โหลด snapshot ที่คอมมิตใหม่ (npm run data:load) หรือกู้คืนฐานข้อมูล
แถวของคุณเอง ตารางของคุณเองในฐานข้อมูล D1 เดียวกัน กู้คืนฐานข้อมูลเท่านั้น
สื่อ R2 bucket หรือไดเรกทอรีแบบสาธารณะและส่วนตัวของคุณ หากย้ายสื่อมาอยู่ในความดูแลของคุณแล้ว สำเนาไฟล์ต้นฉบับและไฟล์ขนาดต่าง ๆ ของคุณเอง
บันทึกการส่งออก ไดเรกทอรีของบัญชีรายการและไฟล์ส่งออกที่เก็บไว้ สำเนา graduation.exports.json, snapshot และ manifest ของสื่อ
Secret repository secret และ Worker secret ของคุณ ที่เก็บ secret ของคุณ ห้ามอยู่ในไฟล์สำรอง

การย้อนกลับโค้ดในส่วน การตั้งค่า ไม่ได้กู้คืนแถวหรือสื่อข้างต้นเลย

หยุดกระบวนการที่เขียนข้อมูลก่อน ได้แก่ งานของคุณเองและการดีพลอยจาก CMS มายังเว็บไซต์นี้

ส่งออกฐานข้อมูลเป็นไฟล์:

หน้าต่างเทอร์มินัล
npx wrangler d1 export <database-name> --remote --output backup-<date>.sql

ระหว่างส่งออก คำขออื่นที่เข้าฐานข้อมูลจะถูกบล็อก และ Cloudflare ไม่ส่งออกฐานข้อมูลที่มี virtual table ค่าตัวเลขผ่าน number ของ JavaScript จำนวนเต็มที่เกินความแม่นยำ 52 บิตจึงอาจเปลี่ยน

บันทึกคอมมิตของรีโพซิทอรีที่ดีพลอย เวลาที่ส่งออก และ checksum ของไฟล์ เก็บ graduation.exports.json พร้อม snapshot และไฟล์ data/media-manifest.json ของชุดส่งออกที่บัญชีรายการคุ้มครอง ได้แก่ ชุดที่ใช้งานอยู่ ชุดสำหรับย้อนกลับ ชุดที่ปักหมุด และชุดที่ยังอยู่ในนโยบายเก็บตามอายุและจำนวน ดูการเก็บรักษาชุดส่งออก

สำหรับ manifest ของสื่อแต่ละชุดที่ต้องเก็บ ให้คัดลอกอ็อบเจกต์ตาม destinationKey ของแต่ละรายการและ variants[].destinationKey ทั้งหมด พร้อมเก็บ checksum และขนาดที่บันทึกไว้ ข้ามรายการที่มี outcome: "external" เพราะไฟล์ยังอยู่กับผู้ให้บริการภายนอกและไม่มีอ็อบเจกต์ปลายทางให้คัดลอก หากต้องสำรองไฟล์เหล่านั้น ให้ใช้เครื่องมือของผู้ให้บริการนั้นแยกต่างหาก

เลือกที่เก็บตามรายการ: visibility: "private" หมายถึง bucket หรือไดเรกทอรีส่วนตัว หากไม่มี visibility ให้ใช้ที่เก็บสาธารณะ ไฟล์ขนาดต่าง ๆ ใช้ที่เก็บเดียวกับรายการต้นฉบับ สำหรับ R2 ใช้ npx wrangler r2 object get <bucket>/<key> --remote --file <path> เพื่อดาวน์โหลดทีละอ็อบเจกต์ เก็บสำเนาไว้นอกที่เก็บเดิมและบันทึกว่าแต่ละไฟล์มาจาก bucket หรือไดเรกทอรีใด เก็บชนิดเนื้อหาและเมทาดาทาที่จำเป็นต่อการให้บริการไฟล์ด้วย

สร้างฐานข้อมูลใหม่และโหลดไฟล์ส่งออกเข้าไป:

หน้าต่างเทอร์มินัล
npx wrangler d1 create <restore-database-name>
npx wrangler d1 execute <restore-database-name> --remote --file backup-<date>.sql

deployment ที่สร้างหาฐานข้อมูลของตัวเองจากการตั้งค่า และโครงการนี้ไม่มีคำสั่งที่ชี้ไปยังสำเนาที่กู้คืน ให้ชี้การตั้งค่า Worker แยกที่ไม่ใช่ production ไปยังฐานข้อมูลที่กู้คืนเอง ดีพลอยคอมมิตที่บันทึกไว้ แล้วตรวจโดยมี API_BEARER_TOKEN ใน environment:

หน้าต่างเทอร์มินัล
npm run verify:deployment -- --origin 'https://restore.example.com' --expect-commit <full-commit-sha>
npm run verify:media

verify:deployment เทียบเนื้อหาที่ดีพลอยกับ snapshot ที่คอมมิต verify:media ตรวจการอ้างอิงสื่อใน projection ที่คอมมิต ไม่ได้ดาวน์โหลดไบต์ เปิดหน้าและสื่อตัวอย่างด้วยตัวเอง

Cloudflare D1 Time Travel กู้คืนฐานข้อมูลในที่เดิมไปยังเวลาก่อนหน้า: ย้อนได้สูงสุด 30 วันบนแพ็กเกจ Workers Paid และ 7 วันบนแพ็กเกจ Workers Free --timestamp รับ Unix timestamp หรือเวลา RFC 3339 ที่มี timezone --bookmark รับ bookmark ที่ info แสดง

หน้าต่างเทอร์มินัล
npx wrangler d1 time-travel info <database-name>
npx wrangler d1 time-travel restore <database-name> --timestamp <time>

คำสั่งนี้เขียนทับฐานข้อมูลจริง รวมถึงตารางของคุณเอง และยกเลิก query ที่กำลังทำงาน ส่งออกก่อน สคีมาที่กู้คืนอาจเก่ากว่าโค้ดที่ดีพลอย ตรวจว่า migration ของคอมมิตที่ดีพลอยตรงกับฐานข้อมูลที่กู้คืนก่อนให้บริการ traffic จากฐานนั้น

กู้คืนไฟล์ต้นฉบับและไฟล์ขนาดต่าง ๆ ด้วย key ปลายทางที่บันทึกไว้ ลงใน bucket หรือไดเรกทอรีสาธารณะหรือส่วนตัวที่ตรงกัน สำหรับ R2 ใช้ npx wrangler r2 object put <bucket>/<key> --remote --file <path> แล้วคืนค่าเมทาดาทาของอ็อบเจกต์ด้วยเครื่องมือของผู้ให้บริการ เทียบ checksum และขนาดของไฟล์ที่กู้คืนกับ manifest ห้ามนำไฟล์ส่วนตัวหรือไฟล์ขนาดต่าง ๆ ของมันไปไว้ในที่เก็บที่เปิดให้เข้าถึงแบบสาธารณะ

เก็บบัญชีรายการและไฟล์ส่งออกที่ต้องรักษาไว้พร้อมไฟล์ที่กู้คืน อย่ารันการล้างชุดส่งออกจนกว่าการตั้งค่าที่เก็บในบัญชีรายการจะตรงกับที่กู้คืน และไฟล์ของชุดส่งออกที่ได้รับการคุ้มครองจะครบถ้วน รายการจากผู้ให้บริการภายนอกต้องยังเปิด URL เดิมได้ การกู้คืนอ็อบเจกต์ของ CMS ไม่ได้กู้คืนไฟล์เหล่านั้น

ขณะที่ CMS ยังเก็บสื่อที่อ้างอิงอยู่ npm run backend:deliver พร้อม --media จะย้ายสื่อเป็นส่วนหนึ่งของการสร้างและส่งมอบแบบเต็ม ไฟล์ส่วนตัวต้องมีที่เก็บปลายทางส่วนตัวที่ตั้งค่าแยกไว้ คำสั่งนี้สร้างชุดส่งออกใหม่จากเนื้อหาที่เผยแพร่อยู่ในปัจจุบัน ไม่ได้กู้คืนชุดส่งออกเก่าหรือสื่อที่ CMS ไม่มีแล้ว

ชี้ production ไปยังสำเนาที่แยกไว้ หรือทำการกู้คืนซ้ำบน production หลังสำเนานั้นผ่านการตรวจเท่านั้น เก็บฐานข้อมูลเดิมไว้จนเจ้าของยอมรับผล เปิดกระบวนการที่เขียนข้อมูลกลับเป็นขั้นตอนสุดท้าย

ที่เกี่ยวข้อง: การย้อนกลับและการกู้คืน, การสำรองและกู้คืน CMS, คู่มือการแยกออก

ดู route การยืนยันตัวตน และพฤติกรรมการดีพลอยได้ใน เอกสารอ้างอิง API


ยังไม่เปิดตัว (pre-MVP) และยังไม่มีเวอร์ชันเสถียร
คอมมิตซอร์สโค้ด: e207e63239a627fbd2ae9c414ef7c6eb19fcfe5a (มีการแก้ไขที่ยังไม่คอมมิต)
วันที่สร้างเอกสาร (UTC): 2026-10-21T09:28:24.214Z
คอมมิตสำหรับอัปเกรด: ระบุไม่ได้: มีการแก้ไขที่ยังไม่คอมมิต. บันทึกการเปลี่ยนแปลง