fTL;DR
Insomnia 8.0にアップグレードしてコレクションへのアクセスを失った場合でも、データはディスク上に残っている可能性が高いです。このガイドでは、それを見つけ、SQLiteデータベースから復元し、Apidogまたは別の代替ツールにクリーンに移行する方法を示します。バックアップファイルを上書きする可能性のあるそれ以上のアップデートをインストールする前に、この手順を実行してください。
はじめに
2023年9月にリリースされたInsomnia 8.0アップデートでは、クラウドログインが必須となりました。多くのユーザーにとって、このアップグレードは混乱をもたらしました。アプリケーションがログイン画面で開き、数か月または数年にわたって構築してきたコレクションが消えてしまったように見えたのです。
一部のデータ損失は実際に発生しました。特に、スクラッチストレージが特定のシステムでデータを破損させたケースです。しかし多くの場合、基となるSQLiteデータベースファイルはディスク上に無傷で残っており、Kongアカウントがなければ新しいUIからはアクセスできない状態でした。
このガイドは、両方の状況に対応しています。データがまだそこにある場合は、それを取り出す方法を見つけられます。スクラッチストレージが実際にデータを失った場合は、どのような復元オプションが存在し、より信頼性の高いローカルファーストモデルを持つツールに移行することで、今後同じ問題を回避する方法を見つけられます。
ステップ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:Insomnia UIを介した復元を試みる
まだKongアカウントにログインしていない場合は、まずスクラッチストレージのパスを試してください。Insomniaがログイン画面を表示するとき、「アカウントなしで使用」または「ローカルストレージで続行」のようなリンクまたはボタンを探してください。正確な文言はバージョンによって変わっています。
ログインせずにアプリにアクセスできる場合は、すぐにすべてのワークスペースをエクスポートしてください:
- 左サイドバーのワークスペース名をクリックします。
- ワークスペースメニュー(3点リーダーまたは歯車アイコン)に移動します。
- 「エクスポート」を選択します。
- 「Insomnia v4 (JSON)」形式を選択します。
- ファイルを安全な場所に保存します。
- すべてのワークスペースに対して繰り返します。
すでにKongアカウントを持っていてログインできる場合は、同様のエクスポートプロセスを実行してください。ログイン済みのエクスペリエンスは、同期されたワークスペースへのアクセスを提供します。以前に同期していた場合は、ディスク上のものよりも完全なデータである可能性があります。
ステップ3:SQLiteデータベースから直接データを復元する
UIからデータにアクセスできない場合は、データベースファイルから直接抽出できます。これには無料のSQLiteブラウザツールが必要です。
DB Browser for SQLiteをインストールします。 sqlitebrowser.orgからダウンロードできます。これは無料でオープンソースであり、macOS、Windows、Linuxで利用可能です。
データベースファイルを開きます。 DB Browserで、ファイル > データベースを開く に進み、Insomniaアプリケーションサポートディレクトリに移動します。insomnia.dbまたはそこにある.dbファイルをどれでも開いてください。
スキーマを探索します。 Insomniaのデータベースには、あなたが気にするいくつかのテーブルがあります:
Workspace– トップレベルのワークスペースRequestGroup– ワークスペース内のフォルダRequest– 個々のリクエストEnvironment– 環境変数セットResponse– 保存されたレスポンス履歴(復元はオプション)
データをエクスポートします。 「データブラウズ」タブで、各テーブルを選択し、ファイル > エクスポート > テーブルをCSVとして保存 を使用して生データを保存します。リクエストの場合、主要なフィールドはname、url、method、headers(JSONとして保存)、およびbodyです。
コレクションを再構築します。 CSVアプローチは、再構築するための生データを提供します。これは手間がかかりますが信頼性があります。プログラムによるアプローチとしては、Pythonのsqlite3モジュールを使用してデータベースにクエリを実行し、エクスポートスクリプトを作成できます。
以下は、古いInsomniaデータベースからリクエストを抽出するための最小限のPythonスクリプトです:
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のファイル履歴、およびほとんどのクラウドバックアップサービス(Backblaze、iCloud Driveなど)は、アップグレード前のInsomniaディレクトリのスナップショットを保持している可能性があります。アプリケーションサポートディレクトリの8.0より前のバージョンを別の場所に復元し、DB Browserを使用してこれらのファイルを読み取ってください。
git履歴を確認します。 一部のチームは、Insomniaのエクスポートをgitリポジトリでバージョン管理しています。組織がこれを行っている場合、エクスポートファイルはgit履歴から復元できます。
Insomniaのエクスポートファイルを探します。 過去に手動でコレクションをエクスポートしたことがある場合、それらのJSONファイルはダウンロードフォルダやプロジェクトディレクトリに置かれているかもしれません。ファイルシステムで「insomnia」または「_collection」という名前を含む.jsonで終わるファイルを検索してください。
ステップ5:Apidogへの移行
Insomnia v4 JSON形式でデータが用意できたら(UIエクスポートから、または手動で再構築したもの)、Apidogへの移行は数分で完了します。
コレクションをインポートします。
- Apidogを開き、新しいプロジェクトを作成します。
- プロジェクト設定またはサイドバーのインポートオプションに移動します。
- 「インポート」を選択し、「Insomnia」を選択します。
- エクスポートしたJSONファイルをアップロードします。
- Apidogはワークスペース、フォルダ、リクエスト、環境を解析します。
きれいに移行されるもの:
- HTTPリクエスト(GET、POST、PUT、DELETE、PATCH)
- リクエストヘッダー
- リクエストボディ(JSON、フォームデータ、マルチパート)
- URLパラメータとパス変数
- 環境変数とその値
- フォルダ構造
手動レビューが必要なもの:
- リクエスト前およびリクエスト後のスクリプト(JavaScript)。Apidogは同様のスクリプトモデルを使用しますが、構文の調整が必要な場合があります。
- Insomniaプラグインに依存していたカスタム認証フロー
- レスポンステストアサーション – これらはApidogのテスト形式で再入力する必要があります
環境を設定します。 インポート後、環境変数が正しくインポートされたことを確認してください。環境パネルに移動し、ベースURL、APIキー、転送されたトークンを確認します。
チームアクセスを確認します。 チームワークスペースを移行する場合、Apidogはオプションのクラウド同期を備えた共有ワークスペースをサポートしています。データがApidogのクラウドに同期されるかどうかを制御できます。チームの場合、一度同期を有効にすることが、移行されたコレクションを共有する最も簡単な方法です。
いくつかのリクエストをテストします。 コレクションから5〜6個の代表的なリクエストを選び、それらを実行して期待通りに動作することを確認します。認証ヘッダーと環境変数の置換に注意してください。
将来この問題を避けるために
Insomnia 8.0の状況から得られる核心的な教訓は、どのツールを使用するかにかかわらず、バックアップ戦略なしに重要な作業データを単一のツールに預けることはリスクが高いということです。
今後あなたを保護するためのいくつかの習慣:
定期的にエクスポートする。 コレクションを毎月バックアップフォルダまたはgitリポジトリにエクスポートするスケジュールを立てましょう。これは2分で完了し、何が起こっても復旧パスを提供します。
ローカルファーストのツールを選ぶ。 Apidogはデフォルトでデータをローカルに保存します。Brunoはコレクションをプレーンファイルとしてディスクに保存します。どちらも、ベンダーのクラウドに頼ることなく、データを確認しバックアップできます。
アップグレードする前にデータモデルを確認する。 メジャーバージョンがリリースされたら、更新する前に移行ノートを読んでください。リリースがデータの保存場所や方法を変更する場合、インストールをクリックする前にその影響を理解してください。
よくある質問
KongにログインせずにInsomniaデータを復元できますか?はい、データベースファイルがディスクに残っている場合、可能です。Insomniaアプリケーションサポートディレクトリにある.dbファイルをDB Browser for SQLiteで開き、テーブルから直接データをエクスポートしてください。
Insomniaデータをエクスポートする際にどの形式を使用すべきですか?Insomnia v4 JSON形式を使用してください。これは最も広くサポートされている形式であり、Apidog、Postman、その他のツールにインポートできます。
環境変数はApidogに転送されますか?ほとんどの場合、転送されます。Insomniaの環境はv4 JSON形式の一部としてエクスポートされ、Apidogはそれらをインポートします。特に機密性の高いトークンについては、インポートされた環境を確認して値が正しいことを確かめてください。
Insomniaのスクラッチストレージと他のツールのローカルストレージの違いは何ですか?Insomniaのスクラッチストレージは信頼性に問題のあるフォールバックモードでした。ApidogやBrunoはローカルストレージをフォールバックではなく主要なモデルとして扱います。データはメモリに保持されるのではなく、保存するたびにディスクに書き込まれます。
DB Browser for SQLiteはmacOSで使えますか?はい。DB Browser for SQLiteは、プロジェクトのウェブサイトから、またHomebrew(brew install db-browser-for-sqlite)を介してmacOSで利用可能です。
InsomniaからApidogへの移行にはどのくらいの時間がかかりますか?一般的な50〜200個のリクエストコレクションの場合、インポートには5分もかかりません。スクリプトや認証フローのレビューと調整は、複雑さによってさらに時間がかかる場合があります。
