SQLite 3 ファイルのページサイズ、エンコーディング、ヘッダーフィールドを読み取り、テーブル、インデックス、ビュー、トリガーを特定する可視の CREATE 文を探します。
ブラウザ内でローカルに実行このページはローカルの SQLite 3 ファイルをブラウザ内で開き、ファイル自身が持つ情報を表示します。データベースヘッダーと、SQLite がテーブル・インデックス・ビュー・トリガーを格納する sqlite_schema テーブルのエントリです。読み取りは FileReader API で行うため、アップロードもクエリの実行もありません。
ボタンで .sqlite / .db / .sqlite3 ファイルを選択してください。ヘッダーは JSON レポートとして、スキーマオブジェクトは表として表示され、クリアでページからファイルを外します。行データは開かず、ページ 1 とスキーマのページだけを読み取ります。
ヘッダーレポートはファイル先頭 100 バイトを名前付きのフィールドとして示します。bytes はファイルサイズ、page_size はデータベースが宣言するページサイズ(値 1 は 65536 を意味します)、pages はファイルサイズをページサイズで割った数です。file_format_write_version と file_format_read_version はロールバックジャーナルのデータベースで 1、WAL のデータベースで 2 になり、text_encoding はヘッダーの記載どおり UTF-8 / UTF-16le / UTF-16be または "not declared" です。
schema_format と application_id も同じヘッダーブロックから取得します。ファイルに入っている値そのままを数値で表示し、application id の意味を推測することはしません。
表はページ 1 の sqlite_schema B ツリーから作成順に読み取り、SQL テキストはそのまま保持します。"user data" のような引用符付きの名前、非 ASCII の名前、複数行のトリガー本体も同様です。CHECK 句が 6 KB ある 130 列のテーブルは完全な形で表示され、400 個のオブジェクトを持つデータベースは 400 件すべてを一覧にしました。
SQLite 自身が作成するオブジェクトも一覧に含まれます。UNIQUE 列は sqlite_autoindex_* インデックスを、AUTOINCREMENT は sqlite_sequence テーブルを生成します。内部オブジェクトの件数は指摘に表示されるので、自分のオブジェクトと取り違えることはありません。
読み取るのは選択したデータベースファイルだけです。WAL モードでは最新の変更が別の -wal ファイルに残っていることがあり、このページはその補助ファイルを読まないため、チェックポイント前の WAL セッションで作成したスキーマが表示されない場合があります。行データは決してデコードしないので、テーブルの中身の表示、整合性チェック、ファイルの修復はできません。
SQLite format 3 のシグネチャで始まらないファイル、100 バイト未満のファイル、実現不可能なページサイズを宣言するヘッダーはメッセージ付きで拒否し、直前のレポートは消去して前のファイルの内容が残らないようにします。