Tóm tắt
Nếu bạn đã nâng cấp lên Insomnia 8.0 và mất quyền truy cập vào các bộ sưu tập của mình, dữ liệu của bạn có thể vẫn còn trên ổ đĩa. Hướng dẫn này chỉ cho bạn cách tìm, khôi phục từ cơ sở dữ liệu SQLite và di chuyển sạch sẽ sang Apidog hoặc một lựa chọn thay thế khác. Hãy thực hiện trước khi cài đặt bất kỳ bản cập nhật nào nữa có thể ghi đè lên các tệp sao lưu của bạn.
Giới thiệu
Bản cập nhật Insomnia 8.0 được phát hành vào tháng 9 năm 2023 với yêu cầu đăng nhập đám mây bắt buộc. Đối với nhiều người dùng, bản nâng cấp đã tạo ra một kết quả gây hoang mang: ứng dụng mở ra màn hình đăng nhập và các bộ sưu tập mà họ đã xây dựng trong nhiều tháng hoặc nhiều năm dường như đã biến mất.
Một số trường hợp mất dữ liệu là có thật – đặc biệt là các trường hợp bộ nhớ tạm thời làm hỏng dữ liệu trên một số hệ thống nhất định. Nhưng trong nhiều trường hợp, các tệp cơ sở dữ liệu SQLite cơ bản vẫn còn nguyên vẹn trên ổ đĩa, chỉ không thể truy cập được thông qua giao diện người dùng mới nếu không có tài khoản Kong.
Hướng dẫn này dành cho cả hai trường hợp. Nếu dữ liệu của bạn vẫn còn, bạn sẽ tìm ra cách lấy nó ra. Nếu bộ nhớ tạm thời thực sự đã làm mất dữ liệu của bạn, bạn sẽ tìm hiểu các tùy chọn khôi phục nào tồn tại và cách tránh cùng một vấn đề trong tương lai bằng cách di chuyển sang một công cụ có mô hình ưu tiên cục bộ đáng tin cậy hơn.
Bước 1: Tìm các tệp cơ sở dữ liệu Insomnia hiện có của bạn
Trước khi bạn làm bất cứ điều gì khác – trước khi cài đặt lại, trước khi tạo tài khoản Kong, trước khi mở lại Insomnia – hãy định vị các tệp cơ sở dữ liệu hiện có của bạn và sao chép chúng đến một vị trí an toàn.
Insomnia lưu trữ dữ liệu ở các vị trí khác nhau tùy thuộc vào phiên bản và hệ điều hành.
macOS:
~/Library/Application Support/Insomnia/
Windows:
C:\Users\[Username]\AppData\Roaming\Insomnia\
Linux:
~/.config/Insomnia/
Bên trong thư mục đó, tìm các tệp sau:
insomnia.db– cơ sở dữ liệu chính (các phiên bản cũ hơn)- Một thư mục tên
core/chứa các tệp.db– phổ biến trong các phiên bản trước 8.0 workspaces/– có thể chứa các tệp JSON đã xuất từ các lần xuất trước
Sao chép toàn bộ thư mục hỗ trợ ứng dụng Insomnia đến một vị trí sao lưu ngay bây giờ. Đừng bỏ qua bước này. Nếu bạn chạy bất kỳ bản nâng cấp nào nữa hoặc gỡ cài đặt/cài đặt lại Insomnia, có nguy cơ các tệp này bị ghi đè hoặc xóa.
Bước 2: Thử khôi phục qua giao diện người dùng Insomnia
Nếu bạn chưa đăng nhập vào tài khoản Kong, hãy thử đường dẫn bộ nhớ tạm thời trước. Khi Insomnia hiển thị màn hình đăng nhập, hãy tìm một liên kết hoặc nút có nội dung như “Sử dụng không cần tài khoản” hoặc “Tiếp tục với bộ nhớ cục bộ.” Cách diễn đạt chính xác đã thay đổi qua các phiên bản.
Nếu bạn có thể truy cập ứng dụng mà không cần đăng nhập, hãy xuất ngay lập tức mọi không gian làm việc:
- Nhấp vào tên không gian làm việc trong thanh bên trái
- Truy cập menu không gian làm việc (ba dấu chấm hoặc biểu tượng bánh răng)
- Chọn “Xuất”
- Chọn định dạng “Insomnia v4 (JSON)”
- Lưu tệp vào một nơi an toàn
- Lặp lại cho mọi không gian làm việc
Nếu bạn đã có tài khoản Kong và có thể đăng nhập, hãy thực hiện quy trình xuất tương tự. Trải nghiệm đăng nhập cho phép bạn truy cập vào các không gian làm việc đã đồng bộ của mình, có thể đầy đủ hơn những gì có trên ổ đĩa nếu bạn đã đồng bộ trước đó.
Bước 3: Khôi phục dữ liệu trực tiếp từ cơ sở dữ liệu SQLite
Nếu giao diện người dùng không cho phép bạn truy cập dữ liệu của mình, bạn có thể trích xuất nó trực tiếp từ tệp cơ sở dữ liệu. Điều này yêu cầu một công cụ trình duyệt SQLite miễn phí.
Cài đặt DB Browser cho SQLite. Tải xuống từ sqlitebrowser.org. Nó miễn phí, mã nguồn mở và có sẵn cho macOS, Windows và Linux.
Mở tệp cơ sở dữ liệu của bạn. Trong DB Browser, đi tới File > Open Database và điều hướng đến thư mục hỗ trợ ứng dụng Insomnia. Mở `insomnia.db` hoặc bất kỳ tệp `.db` nào bạn tìm thấy ở đó.
Khám phá lược đồ. Cơ sở dữ liệu của Insomnia có một số bảng bạn cần quan tâm:
Workspace– các không gian làm việc cấp cao nhất của bạnRequestGroup– các thư mục trong không gian làm việcRequest– các yêu cầu riêng lẻEnvironment– các bộ biến môi trườngResponse– lịch sử phản hồi đã lưu (tùy chọn để khôi phục)
Xuất dữ liệu. Trong tab Browse Data, chọn từng bảng và sử dụng File > Export > Table as CSV để lưu dữ liệu thô. Đối với các yêu cầu, các trường chính là `name`, `url`, `method`, `headers` (lưu dưới dạng JSON) và `body`.
Xây dựng lại bộ sưu tập. Phương pháp CSV cung cấp cho bạn dữ liệu thô để xây dựng lại. Nó tẻ nhạt nhưng đáng tin cậy. Đối với một phương pháp lập trình, bạn có thể sử dụng mô-đun sqlite3 của Python để truy vấn cơ sở dữ liệu và viết một tập lệnh xuất.
Dưới đây là một tập lệnh Python tối thiểu để trích xuất các yêu cầu từ cơ sở dữ liệu Insomnia cũ hơn:
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()
Điều chỉnh tên trường dựa trên những gì bạn thấy trong DB Browser – lược đồ chính xác thay đổi giữa các phiên bản Insomnia.
Bước 4: Khôi phục từ các bản sao lưu nếu cơ sở dữ liệu bị hỏng
Nếu tệp cơ sở dữ liệu bị hỏng, các tùy chọn sẽ hạn chế hơn.
- Kiểm tra Time Machine hoặc các bản sao lưu hệ thống. macOS Time Machine, Windows File History và hầu hết các dịch vụ sao lưu đám mây (Backblaze, iCloud Drive, v.v.) có thể có các bản sao lưu thư mục Insomnia của bạn từ trước khi nâng cấp. Khôi phục phiên bản trước 8.0 của thư mục hỗ trợ ứng dụng đến một vị trí riêng biệt, sau đó sử dụng DB Browser để đọc các tệp đó.
- Kiểm tra lịch sử git. Một số nhóm quản lý phiên bản xuất Insomnia của họ trong kho lưu trữ git. Nếu tổ chức của bạn làm điều này, các tệp xuất có thể được khôi phục từ lịch sử git.
- Tìm các tệp xuất Insomnia. Nếu bạn đã từng xuất thủ công các bộ sưu tập trong quá khứ, các tệp JSON đó có thể nằm trong thư mục Tải xuống của bạn hoặc một thư mục dự án. Tìm kiếm trong hệ thống tệp của bạn các tệp có đuôi `.json` chứa “insomnia” hoặc “_collection” trong tên.
Bước 5: Di chuyển sang Apidog
Khi bạn đã có dữ liệu của mình ở định dạng Insomnia v4 JSON (từ xuất giao diện người dùng hoặc xây dựng lại thủ công), việc di chuyển sang Apidog chỉ mất vài phút.
Nhập các bộ sưu tập của bạn.
- Mở Apidog và tạo một dự án mới
- Truy cập cài đặt dự án hoặc tùy chọn nhập trong thanh bên
- Chọn “Nhập” và chọn “Insomnia”
- Tải lên tệp JSON đã xuất của bạn
- Apidog sẽ phân tích các không gian làm việc, thư mục, yêu cầu và môi trường
Những gì chuyển đổi suôn sẻ:
- Các yêu cầu HTTP (GET, POST, PUT, DELETE, PATCH)
- Tiêu đề yêu cầu
- Phần thân yêu cầu (JSON, dữ liệu biểu mẫu, multipart)
- Các tham số URL và biến đường dẫn
- Các biến môi trường và giá trị của chúng
- Cấu trúc thư mục
Những gì cần xem xét thủ công:
- Các tập lệnh trước và sau yêu cầu (JavaScript). Apidog sử dụng mô hình tập lệnh tương tự nhưng cú pháp có thể cần điều chỉnh.
- Các luồng xác thực tùy chỉnh dựa vào plugin Insomnia
- Các xác nhận kiểm thử phản hồi – những điều này cần được nhập lại theo định dạng kiểm thử của Apidog
Thiết lập môi trường của bạn. Sau khi nhập, kiểm tra xem các biến môi trường đã được nhập đúng chưa. Truy cập bảng điều khiển Môi trường và xác minh các URL cơ sở, khóa API và mọi mã thông báo đã được chuyển giao.
Xác minh quyền truy cập nhóm. Nếu bạn đang di chuyển một không gian làm việc của nhóm, Apidog hỗ trợ các không gian làm việc được chia sẻ với tùy chọn đồng bộ hóa đám mây. Bạn kiểm soát việc dữ liệu có đồng bộ hóa với đám mây của Apidog hay không. Đối với các nhóm, việc bật đồng bộ hóa một lần là cách dễ nhất để chia sẻ các bộ sưu tập đã di chuyển.
Kiểm tra một vài yêu cầu. Chọn năm hoặc sáu yêu cầu tiêu biểu từ bộ sưu tập của bạn và chạy chúng để xác nhận chúng hoạt động như mong đợi. Chú ý đến tiêu đề xác thực và việc thay thế biến môi trường.
Tránh vấn đề này trong tương lai
Bài học cốt lõi từ tình huống Insomnia 8.0 là việc tin tưởng dữ liệu công việc quan trọng của bạn vào một công cụ duy nhất mà không có chiến lược sao lưu là rủi ro – bất kể bạn sử dụng công cụ nào.
Một vài thói quen giúp bảo vệ bạn trong tương lai:
- Xuất thường xuyên. Lên lịch xuất hàng tháng các bộ sưu tập của bạn vào một thư mục sao lưu hoặc kho lưu trữ git. Việc này chỉ mất hai phút và cung cấp cho bạn một lộ trình khôi phục bất kể điều gì xảy ra.
- Chọn các công cụ ưu tiên cục bộ. Apidog lưu trữ dữ liệu cục bộ theo mặc định. Bruno lưu trữ các bộ sưu tập dưới dạng tệp văn bản trên ổ đĩa. Cả hai đều cho phép bạn xem và sao lưu dữ liệu của mình mà không cần phụ thuộc vào đám mây của nhà cung cấp.
- Kiểm tra mô hình dữ liệu trước khi nâng cấp. Khi một phiên bản chính được phát hành, hãy đọc ghi chú di chuyển trước khi cập nhật. Nếu bản phát hành thay đổi vị trí hoặc cách dữ liệu được lưu trữ, hãy hiểu rõ các tác động trước khi nhấp vào cài đặt.
Câu hỏi thường gặp
Tôi có thể khôi phục dữ liệu Insomnia mà không cần đăng nhập vào Kong không?Có, nếu các tệp cơ sở dữ liệu của bạn vẫn còn trên ổ đĩa. Sử dụng DB Browser cho SQLite để mở tệp `.db` trong thư mục hỗ trợ ứng dụng Insomnia của bạn và xuất dữ liệu trực tiếp từ các bảng.
Tôi nên sử dụng định dạng nào khi xuất dữ liệu Insomnia?Sử dụng định dạng Insomnia v4 JSON. Đây là định dạng được hỗ trợ rộng rãi nhất và có thể được nhập bởi Apidog, Postman và các công cụ khác.
Các biến môi trường của tôi có được chuyển sang Apidog không?Trong hầu hết các trường hợp là có. Môi trường Insomnia được xuất như một phần của định dạng JSON v4 và Apidog nhập chúng. Xem lại các môi trường đã nhập để xác nhận các giá trị là chính xác, đặc biệt đối với các mã thông báo nhạy cảm.
Sự khác biệt giữa bộ nhớ tạm thời của Insomnia và bộ nhớ cục bộ trong các công cụ khác là gì?Bộ nhớ tạm thời của Insomnia là một chế độ dự phòng có vấn đề về độ tin cậy. Apidog và Bruno coi bộ nhớ cục bộ là mô hình chính, không phải là dự phòng. Dữ liệu được ghi vào ổ đĩa mỗi khi lưu, không được giữ trong bộ nhớ.
Tôi có thể sử dụng DB Browser cho SQLite trên macOS không?Có. DB Browser cho SQLite có sẵn cho macOS thông qua trang web của dự án và qua Homebrew (brew install db-browser-for-sqlite).
Di chuyển từ Insomnia sang Apidog mất bao lâu?Đối với một bộ sưu tập điển hình gồm 50-200 yêu cầu, việc nhập mất dưới năm phút. Việc xem xét và điều chỉnh các tập lệnh và luồng xác thực có thể mất nhiều thời gian hơn tùy thuộc vào độ phức tạp.
