# สำรองและย้ายข้อมูลทั้งระบบ

รุ่น2026.10.18-migration.1 รูปแบบnkw-system-backup schema1

## ขอบเขต

ข้อมูลของ **เบราว์เซอร์/โปรไฟล์/โดเมนนี้** ที่บันทึกอยู่ในlocalStorage ชุดเดียวรวม:

- โครงงานกู้ภัย ซูโม่ เดินตามเส้น พร้อมบล็อก สนาม และค่าหุ่นที่อยู่ภายในโครงงาน
- สนามสร้างเองและภาพที่นำเข้าแบบdataURLซึ่งเก็บในสนาม/โครงงาน
- ผลทดลอง ประวัติ บันทึกย้อนหลัง ชุดA/Bและความทนทานที่บันทึกไว้
- งานสำรองก่อนเข้าแบบฝึก โครงงานB ค่าตั้งเสียง ป้ายหุ่น และโหมดสว่าง–เข้ม
- ใบตรวจเครื่องที่กดบันทึกในหน้าดูแลระบบ

ไม่รวมงานที่ยังไม่บันทึกในแท็บที่เปิดอยู่ ไฟล์ที่เก็บในDownloads ระบบผู้ใช้อื่น เครื่องอื่น คุกกี้/รหัสผ่าน/สิทธิ์Sites หรือข้อมูลบนFirebase (รุ่นนี้ยังไม่เชื่อมFirebase) ไฟล์อ้างอิงและตัวอย่างโปรแกรมที่มากับเว็บไซต์อยู่ในชุดติดตั้ง ไม่ต้องใส่ในชุดสำรองผู้ใช้

## สำรอง

1. หยุดโปรแกรม บันทึกโครงงาน ผลทดลอง และย้อนหลังที่ต้องการในแต่ละห้องทดลอง
2. ปิดแท็บห้องทดลองอื่น เปิดเมนู **สำรอง / ตรวจระบบ** ในโดเมนเดิม
3. กดตรวจรายการในเครื่อง แล้วดาวน์โหลดชุดสำรองทั้งหมด
4. ตรวจว่ามีไฟล์JSONในDownloadsจริง เปิดไฟล์ผ่านช่องนำเข้าเพื่อเช็คSHA-256และรายการได้โดยยังไม่กดนำเข้า
5. เก็บในที่ปลอดภัย ไฟล์ไม่เข้ารหัสและอาจมีชื่อนักเรียน/ผลการเรียนรู้

ข้อมูลดิบที่เคยเสียรูปแบบยังสำรองไว้ได้ แต่ตารางจะเตือนว่าอ่านJSONไม่ได้ ไม่รับรองว่าซ่อมข้อมูลนั้นแล้ว SHA-256ตรวจความครบถ้วน ไม่ใช่ลายเซ็นรับรองผู้สร้างไฟล์

## ย้ายเครื่อง/โดเมนและนำเข้า

1. เปิดเว็บไซต์ปลายทางผ่านHTTPSหรือlocalhost ไม่เปิดHTMLตรงแบบfile://
2. ปิดแท็บห้องทดลองปลายทาง เลือกไฟล์สำรอง หน้าจะตรวจชนิดไฟล์ schema รุ่น ขนาด คีย์ซ้ำ และSHA-256
3. เลือกวิธีนำเข้า:
   - **รักษาข้อมูลเดิม:** เพิ่มเฉพาะคีย์ที่ไม่มีแล้ว ข้ามคีย์ซ้ำทั้งรายการ เช่น ประวัติเดิมกับประวัติใหม่จะไม่ถูกรวมอัตโนมัติ
   - **แทนชุดข้อมูลทั้งระบบ:** เปลี่ยนคีย์NKWทั้งหมดให้ตรงไฟล์ รวมล้างคีย์NKWเดิมที่ไฟล์ไม่มี ใช้เมื่อย้ายทั้งชุดหรือย้อนกลับจากไฟล์เดิม
4. ดาวน์โหลดชุดเดิมของเครื่องปลายทาง ตรวจไฟล์ แล้วติ๊กยืนยันก่อนกดนำเข้า
5. หลังอ่านกลับตรงแล้ว เปิดห้องทดลองใหม่ ตรวจชื่อโครงงาน บล็อก สนาม ค่าตั้ง ผล คะแนน รุ่นกติกา และเลื่อนย้อนหลังอย่างน้อยหนึ่งรายการทุกโมดูล
6. อย่าเพิ่งล้างข้อมูลเครื่องเดิมจนตรวจปลายทางครบ การคัดลอกไฟล์เว็บไซต์ไปโฮสต์ใหม่ไม่ย้ายlocalStorageให้อัตโนมัติ

ไฟล์และผลเก่าคงรุ่นเดิม ไม่คำนวณคะแนนใหม่ ไม่แปลงข้ามรุ่นอัตโนมัติ การผ่านschemaสำรองไม่ได้รับรองว่าโครงงานเก่าทุกรุ่นเปิดในแอปรุ่นนี้ได้

## เมื่อผิดพลาดและวิธีย้อนกลับ

- ถ้าไฟล์ไม่ครบ/hashผิด/คีย์นอกระบบ จะไม่เริ่มเขียน
- ถ้าข้อมูลเครื่องเปลี่ยนหลังดูตัวอย่าง ต้องเลือกไฟล์อีกครั้งและสำรองชุดปัจจุบันใหม่
- ถ้าเขียนล้มเหลว เช่น พื้นที่เต็ม จะพยายามคืนชุดเดิมและตรวจอ่านกลับ พร้อมบอกว่าคืนสำเร็จหรือไม่
- หากคืนอัตโนมัติไม่ครบ ให้หยุดแก้ข้อมูล ปิดแท็บอื่น และใช้ไฟล์NKW_Before_Restoreที่ดาวน์โหลดไว้ นำเข้าแบบแทนชุดทั้งหมดเมื่อแก้พื้นที่/สิทธิ์บันทึกแล้ว
- ย้อนกลับด้วยตนเองได้โดยเลือกชุดสำรองเดิม แล้วนำเข้าแบบแทนชุดทั้งหมด กระบวนการนี้ไม่ย้อนเวอร์ชันโปรแกรมเว็บไซต์

ขอบเขต32MB/256คีย์เป็นขอบเขตเครื่องมือนี้ พื้นที่localStorageจริงอาจน้อยกว่าและต่างตามเบราว์เซอร์ การนำเข้าไม่ใช่transactionของฐานข้อมูลข้ามแท็บ จึงต้องปิดแท็บอื่น ไม่มีการกู้ไฟล์ที่ไม่เคยบันทึกหรือเบราว์เซอร์ลบทิ้งไปแล้ว

## สำหรับผู้พัฒนา

namespaceที่รวมคือnkw3d-, nkw-rescue-, nkw-sumo-, nkw-line- เท่านั้น ตรวจซ้ำsnapshotก่อนส่งออกและก่อนเขียน เก็บvalueเป็นstringเดิม ไม่parseแล้วserializeข้อมูลผู้ใช้ใหม่ หากเพิ่มnamespace/IndexedDB/ฐานข้อมูลภายหลังต้องขยายตัวเก็บข้อมูลและเพิ่มการทดสอบ ห้ามอ้างว่ารองรับจากการอัปโหลดไฟล์อย่างเดียว
