สรุปโดยย่อ (fTL;DR)
หากคุณอัปเกรดเป็น Insomnia 8.0 แล้วไม่สามารถเข้าถึงคอลเลกชันของคุณได้ ข้อมูลของคุณอาจยังคงอยู่ในดิสก์ คู่มือนี้จะแสดงวิธีค้นหา กู้คืนจากฐานข้อมูล SQLite และย้ายข้อมูลไปยัง Apidog หรือทางเลือกอื่น ๆ ได้อย่างราบรื่น ดำเนินการก่อนที่จะติดตั้งการอัปเดตเพิ่มเติมใด ๆ ที่อาจเขียนทับไฟล์สำรองของคุณ
บทนำ
การอัปเดต Insomnia 8.0 ที่เผยแพร่ในเดือนกันยายน 2023 มาพร้อมกับการบังคับเข้าสู่ระบบคลาวด์ สำหรับผู้ใช้จำนวนมาก การอัปเกรดดังกล่าวทำให้เกิดผลลัพธ์ที่สับสน: แอปพลิเคชันเปิดขึ้นมาที่หน้าจอเข้าสู่ระบบ และคอลเลกชันที่พวกเขาสร้างขึ้นมานานหลายเดือนหรือหลายปีดูเหมือนจะหายไป
การสูญหายของข้อมูลบางส่วนเป็นเรื่องจริง โดยเฉพาะอย่างยิ่งในกรณีที่ที่เก็บข้อมูลชั่วคราว (scratch storage) ทำให้ข้อมูลเสียหายในบางระบบ แต่ในหลายกรณี ไฟล์ฐานข้อมูล SQLite ที่อยู่เบื้องหลังยังคงสมบูรณ์อยู่ในดิสก์ เพียงแต่ไม่สามารถเข้าถึงได้ผ่าน UI ใหม่หากไม่มีบัญชี Kong
คู่มือนี้เหมาะสำหรับทั้งสองสถานการณ์ หากข้อมูลของคุณยังคงอยู่ คุณจะได้รู้วิธีดึงข้อมูลออกมา หากที่เก็บข้อมูลชั่วคราว (scratch storage) ทำให้ข้อมูลของคุณสูญหายไปจริง ๆ คุณจะได้ทราบถึงตัวเลือกการกู้คืนที่มีอยู่ และวิธีหลีกเลี่ยงปัญหาเดียวกันในอนาคตด้วยการย้ายไปยังเครื่องมือที่มีโมเดล "local-first" ที่น่าเชื่อถือยิ่งขึ้น
ขั้นตอนที่ 1: ค้นหาไฟล์ฐานข้อมูล Insomnia ที่มีอยู่ของคุณ
ก่อนที่คุณจะทำสิ่งอื่นใด – ก่อนการติดตั้งใหม่ ก่อนสร้างบัญชี Kong ก่อนที่จะเปิด Insomnia อีกครั้ง – ให้ค้นหาไฟล์ฐานข้อมูลที่มีอยู่ของคุณและคัดลอกไปยังตำแหน่งที่ปลอดภัย
Insomnia จัดเก็บข้อมูลในตำแหน่งที่แตกต่างกันขึ้นอยู่กับเวอร์ชันและระบบปฏิบัติการ
macOS:
~/Library/Application Support/Insomnia/
Windows:
C:\Users\[Username]\AppData\Roaming\Insomnia\
Linux:
~/.config/Insomnia/
ภายในไดเรกทอรีนั้น ให้มองหาไฟล์เหล่านี้:
insomnia.db– ฐานข้อมูลหลัก (เวอร์ชันเก่า)- ไดเรกทอรีชื่อ
core/ซึ่งมีไฟล์.db– พบได้บ่อยในเวอร์ชันก่อน 8.0 workspaces/– อาจมีไฟล์ JSON ที่ส่งออกจากการส่งออกก่อนหน้านี้
คัดลอกไดเรกทอรีสนับสนุนแอปพลิเคชัน Insomnia ทั้งหมดไปยังตำแหน่งสำรองทันที อย่าข้ามขั้นตอนนี้ หากคุณดำเนินการอัปเกรดเพิ่มเติมใด ๆ หรือถอนการติดตั้ง/ติดตั้ง Insomnia ใหม่ มีความเสี่ยงที่ไฟล์เหล่านี้จะถูกเขียนทับหรือลบ
ขั้นตอนที่ 2: ลองกู้คืนผ่าน UI ของ Insomnia
หากคุณยังไม่ได้เข้าสู่ระบบบัญชี Kong ให้ลองเส้นทางที่เก็บข้อมูลชั่วคราว (scratch storage) ก่อน เมื่อ Insomnia แสดงหน้าจอเข้าสู่ระบบ ให้มองหาลิงก์หรือปุ่มที่ระบุว่า “ใช้งานโดยไม่ใช้บัญชี” หรือ “ดำเนินการต่อด้วยที่เก็บข้อมูลในเครื่อง” ข้อความที่แน่นอนมีการเปลี่ยนแปลงในแต่ละเวอร์ชัน
หากคุณสามารถเข้าถึงแอปได้โดยไม่ต้องเข้าสู่ระบบ ให้ส่งออกทุก workspace ทันที:
- คลิกที่ชื่อ workspace ในแถบด้านข้างซ้าย
- ไปที่เมนู workspace (ไอคอนสามจุดหรือไอคอนรูปฟันเฟือง)
- เลือก “Export” (ส่งออก)
- เลือกรูปแบบ “Insomnia v4 (JSON)”
- บันทึกไฟล์ในที่ปลอดภัย
- ทำซ้ำสำหรับทุก workspace
หากคุณมีบัญชี Kong อยู่แล้วและสามารถเข้าสู่ระบบได้ ให้ทำตามขั้นตอนการส่งออกเดียวกัน ประสบการณ์การเข้าสู่ระบบจะช่วยให้คุณเข้าถึง workspace ที่ซิงค์ไว้ ซึ่งอาจสมบูรณ์กว่าข้อมูลที่อยู่ในดิสก์ หากคุณเคยซิงค์ข้อมูลมาก่อนหน้านี้
ขั้นตอนที่ 3: กู้คืนข้อมูลโดยตรงจากฐานข้อมูล SQLite
หาก UI ไม่สามารถเข้าถึงข้อมูลของคุณได้ คุณสามารถดึงข้อมูลออกมาโดยตรงจากไฟล์ฐานข้อมูลได้ ซึ่งต้องใช้เครื่องมือเบราว์เซอร์ SQLite ฟรี
ติดตั้ง DB Browser for SQLite ดาวน์โหลดได้จาก sqlitebrowser.org เป็นซอฟต์แวร์ฟรี โอเพนซอร์ส และพร้อมใช้งานสำหรับ macOS, Windows และ Linux
เปิดไฟล์ฐานข้อมูลของคุณ ใน DB Browser ไปที่ File (ไฟล์) > Open Database (เปิดฐานข้อมูล) และไปยังไดเรกทอรีสนับสนุนแอปพลิเคชัน Insomnia เปิดไฟล์ insomnia.db หรือไฟล์ .db ใด ๆ ที่คุณพบในนั้น
สำรวจสคีมา ฐานข้อมูลของ Insomnia มีหลายตารางที่คุณควรให้ความสนใจ:
Workspace– workspace ระดับบนสุดของคุณRequestGroup– โฟลเดอร์ภายใน workspaceRequest– คำขอแต่ละรายการEnvironment– ชุดตัวแปรสภาพแวดล้อมResponse– ประวัติการตอบกลับที่เก็บไว้ (เลือกที่จะกู้คืน)
ส่งออกข้อมูล ในแท็บ Browse Data (เรียกดูข้อมูล) เลือกแต่ละตารางและใช้ File (ไฟล์) > Export (ส่งออก) > Table as CSV (ตารางเป็น CSV) เพื่อบันทึกข้อมูลดิบ สำหรับคำขอ ฟิลด์หลักคือ name, url, method, headers (จัดเก็บเป็น JSON) และ body
สร้างคอลเลกชันใหม่ วิธีการ CSV ช่วยให้คุณมีข้อมูลดิบสำหรับสร้างใหม่ได้ แม้จะน่าเบื่อแต่เชื่อถือได้ สำหรับวิธีการแบบโปรแกรม คุณสามารถใช้โมดูล sqlite3 ของ Python เพื่อคิวรีฐานข้อมูลและเขียนสคริปต์การส่งออกได้
นี่คือสคริปต์ Python แบบง่ายสำหรับการแยกคำขอจากฐานข้อมูล Insomnia เวอร์ชันเก่า:
import sqlite3
import json
conn = sqlite3.connect('/path/to/insomnia.db')
cursor = conn.cursor()
cursor.execute("SELECT name, url, method, headers, body FROM Request")
rows = cursor.fetchall()
for row in rows:
print(f"Name: {row[0]}")
print(f"Method: {row[2]} {row[1]}")
if row[3]:
headers = json.loads(row[3])
for h in headers:
print(f" Header: {h.get('name')}: {h.get('value')}")
print()
conn.close()
ปรับชื่อฟิลด์ตามที่คุณเห็นใน DB Browser – เนื่องจากสคีมาที่แน่นอนแตกต่างกันไปในแต่ละเวอร์ชันของ Insomnia
ขั้นตอนที่ 4: กู้คืนจากข้อมูลสำรองหากฐานข้อมูลเสียหาย
หากไฟล์ฐานข้อมูลเสียหาย ตัวเลือกจะจำกัดมากขึ้น
ตรวจสอบ Time Machine หรือข้อมูลสำรองของระบบ macOS Time Machine, Windows File History และบริการสำรองข้อมูลบนคลาวด์ส่วนใหญ่ (Backblaze, iCloud Drive, เป็นต้น) อาจมีสแนปชอตของไดเรกทอรี Insomnia ของคุณก่อนการอัปเกรด กู้คืนไดเรกทอรีสนับสนุนแอปพลิเคชันเวอร์ชันก่อน 8.0 ไปยังตำแหน่งที่แยกต่างหาก จากนั้นใช้ DB Browser เพื่ออ่านไฟล์เหล่านั้น
ตรวจสอบประวัติ Git บางทีมจะจัดเก็บไฟล์ส่งออกของ Insomnia ใน Git repository หากองค์กรของคุณทำเช่นนี้ ไฟล์ส่งออกสามารถกู้คืนได้จากประวัติ Git
มองหาไฟล์ส่งออกของ Insomnia หากคุณเคยส่งออกคอลเลกชันด้วยตนเองในอดีต ไฟล์ JSON เหล่านั้นอาจอยู่ในโฟลเดอร์ Downloads ของคุณหรือไดเรกทอรีโปรเจกต์ ค้นหาระบบไฟล์ของคุณสำหรับไฟล์ที่ลงท้ายด้วย .json ที่มีคำว่า “insomnia” หรือ “_collection” ในชื่อ
ขั้นตอนที่ 5: ย้ายไปยัง Apidog
เมื่อคุณมีข้อมูลในรูปแบบ Insomnia v4 JSON (ไม่ว่าจะจากการส่งออกจาก UI หรือสร้างขึ้นใหม่ด้วยตนเอง) การย้ายไปยัง Apidog จะใช้เวลาเพียงไม่กี่นาที
นำเข้าคอลเลกชันของคุณ
- เปิด Apidog และสร้างโปรเจกต์ใหม่
- ไปที่การตั้งค่าโปรเจกต์หรือตัวเลือกนำเข้าในแถบด้านข้าง
- เลือก “Import” (นำเข้า) และเลือก “Insomnia”
- อัปโหลดไฟล์ JSON ที่คุณส่งออก
- Apidog จะแยกวิเคราะห์ workspace, โฟลเดอร์, คำขอ และสภาพแวดล้อม
สิ่งที่ถ่ายโอนได้สมบูรณ์:
- คำขอ HTTP (GET, POST, PUT, DELETE, PATCH)
- ส่วนหัวของคำขอ (Request headers)
- ส่วนเนื้อหาของคำขอ (Request bodies) (JSON, form data, multipart)
- พารามิเตอร์ URL และตัวแปรพาธ
- ตัวแปรสภาพแวดล้อมและค่าของมัน
- โครงสร้างโฟลเดอร์
สิ่งที่ต้องตรวจสอบด้วยตนเอง:
- สคริปต์ก่อนคำขอและหลังคำขอ (JavaScript) Apidog ใช้โมเดลการเขียนสคริปต์ที่คล้ายกัน แต่ไวยากรณ์อาจต้องมีการปรับเปลี่ยน
- ขั้นตอนการยืนยันตัวตนแบบกำหนดเองที่อาศัยปลั๊กอินของ Insomnia
- การยืนยันการทดสอบการตอบกลับ (Response test assertions) – สิ่งเหล่านี้ต้องถูกป้อนใหม่ในรูปแบบการทดสอบของ Apidog
ตั้งค่าสภาพแวดล้อมของคุณ หลังจากการนำเข้า ให้ตรวจสอบว่าตัวแปรสภาพแวดล้อมถูกนำเข้าอย่างถูกต้อง ไปที่แผง Environments (สภาพแวดล้อม) และยืนยัน URL พื้นฐาน, คีย์ API และโทเค็นใดๆ ที่ถ่ายโอนมา
ตรวจสอบการเข้าถึงของทีม หากคุณกำลังย้าย workspace ของทีม Apidog รองรับ workspace ที่แชร์ได้พร้อมตัวเลือกการซิงค์บนคลาวด์ คุณสามารถควบคุมได้ว่าจะให้ข้อมูลซิงค์ไปยังคลาวด์ของ Apidog หรือไม่ สำหรับทีม การเปิดใช้งานการซิงค์เพียงครั้งเดียวเป็นวิธีที่ง่ายที่สุดในการแชร์คอลเลกชันที่ย้ายมา
ทดสอบคำขอบางรายการ เลือกคำขอตัวแทนห้าหรือหกรายการจากคอลเลกชันของคุณและเรียกใช้เพื่อยืนยันว่าทำงานได้ตามที่คาดไว้ ให้ความสนใจกับส่วนหัวการยืนยันตัวตน (authentication headers) และการแทนที่ตัวแปรสภาพแวดล้อม
การหลีกเลี่ยงปัญหานี้ในอนาคต
บทเรียนสำคัญจากสถานการณ์ Insomnia 8.0 คือการเชื่อมั่นในข้อมูลงานที่สำคัญของคุณกับเครื่องมือเพียงอย่างเดียวโดยไม่มีกลยุทธ์การสำรองข้อมูลนั้นเป็นความเสี่ยง – ไม่ว่าคุณจะใช้เครื่องมือใดก็ตาม
นิสัยบางประการที่จะช่วยปกป้องคุณในอนาคต:
ส่งออกเป็นประจำ กำหนดการส่งออกคอลเลกชันของคุณทุกเดือนไปยังโฟลเดอร์สำรองหรือ Git repository ซึ่งใช้เวลาเพียงสองนาทีและช่วยให้คุณมีเส้นทางการกู้คืนไม่ว่าจะเกิดอะไรขึ้น
เลือกใช้เครื่องมือที่เน้นการทำงานในเครื่อง (local-first tools) Apidog จัดเก็บข้อมูลในเครื่องโดยค่าเริ่มต้น Bruno จัดเก็บคอลเลกชันเป็นไฟล์ธรรมดาบนดิสก์ ทั้งสองช่วยให้คุณสามารถดูและสำรองข้อมูลของคุณได้โดยไม่ต้องพึ่งพาคลาวด์ของผู้ให้บริการ
ตรวจสอบโมเดลข้อมูลก่อนอัปเกรด เมื่อมีการเผยแพร่เวอร์ชันหลัก ให้อ่านบันทึกการย้ายข้อมูลก่อนอัปเดต หากเวอร์ชันใหม่เปลี่ยนแปลงตำแหน่งหรือวิธีการจัดเก็บข้อมูล ให้ทำความเข้าใจผลกระทบก่อนที่จะคลิกติดตั้ง
คำถามที่พบบ่อย (FAQ)
ฉันสามารถกู้คืนข้อมูล Insomnia ได้โดยไม่ต้องเข้าสู่ระบบ Kong ได้หรือไม่?ได้ หากไฟล์ฐานข้อมูลของคุณยังคงอยู่ในดิสก์ ใช้ DB Browser for SQLite เพื่อเปิดไฟล์ .db ในไดเรกทอรีสนับสนุนแอปพลิเคชัน Insomnia ของคุณและส่งออกข้อมูลจากตารางโดยตรง
ฉันควรใช้รูปแบบใดในการส่งออกข้อมูล Insomnia?ใช้รูปแบบ Insomnia v4 JSON ซึ่งเป็นรูปแบบที่รองรับอย่างกว้างขวางที่สุดและสามารถนำเข้าโดย Apidog, Postman และเครื่องมืออื่นๆ
ตัวแปรสภาพแวดล้อมของฉันจะถูกถ่ายโอนไปยัง Apidog หรือไม่?ในกรณีส่วนใหญ่จะถูกถ่ายโอน สภาพแวดล้อมของ Insomnia จะถูกส่งออกเป็นส่วนหนึ่งของรูปแบบ v4 JSON และ Apidog จะนำเข้าสิ่งเหล่านั้น ตรวจสอบสภาพแวดล้อมที่นำเข้าเพื่อให้แน่ใจว่าค่าถูกต้อง โดยเฉพาะอย่างยิ่งสำหรับโทเค็นที่มีความละเอียดอ่อน
ความแตกต่างระหว่าง Insomnia scratch storage และ local storage ในเครื่องมืออื่น ๆ คืออะไร?Insomnia scratch storage เป็นโหมดสำรองที่มีปัญหาด้านความน่าเชื่อถือ Apidog และ Bruno ถือว่า local storage เป็นโมเดลหลัก ไม่ใช่โหมดสำรอง ข้อมูลจะถูกเขียนลงดิสก์ทุกครั้งที่บันทึก ไม่ได้ถูกเก็บไว้ในหน่วยความจำ
ฉันสามารถใช้ DB Browser for SQLite บน macOS ได้หรือไม่?ได้ DB Browser for SQLite มีให้ใช้งานสำหรับ macOS ผ่านเว็บไซต์ของโครงการและผ่าน Homebrew (brew install db-browser-for-sqlite)
การย้ายข้อมูลจาก Insomnia ไปยัง Apidog ใช้เวลานานแค่ไหน?สำหรับคอลเลกชันทั่วไปที่มีคำขอ 50-200 รายการ การนำเข้าใช้เวลาน้อยกว่าห้านาที การตรวจสอบและปรับสคริปต์และขั้นตอนการยืนยันตัวตนอาจใช้เวลานานขึ้นอยู่กับความซับซ้อน
