SQLite-Header- und Schemaprüfung

Wählen Sie eine SQLite-Datei und prüfen Sie Header und erkannten Schematext. Die Erkennung ist heuristisch; Abfragen und Tabellenzeilen werden nicht ausgeführt oder angezeigt.

Läuft lokal in deinem Browser
Dieses Werkzeug verarbeitet alle Daten lokal in deinem Browser.
SQLite-DatenbankdateiWählen Sie eine lokale SQLite-3-Datei. Der Inspektor liest nur Header und Schema-Text; er führt keine SQL-Abfragen aus.
Datenbank-Header

    So prüfen Sie eine SQLite-Datenbank

    Diese Seite öffnet eine lokale SQLite-3-Datei im Browser und berichtet, was die Datei über sich selbst sagt: den Datenbank-Header und die Einträge der Tabelle sqlite_schema, in der SQLite jede Tabelle, jeden Index, jede View und jeden Trigger ablegt. Die Datei wird mit der FileReader-API gelesen, es wird also nichts hochgeladen und keine Abfrage ausgeführt.

    Wählen Sie die Datei .sqlite, .db oder .sqlite3 über die Schaltfläche. Der Header erscheint als JSON-Bericht, die Schema-Objekte als Tabelle, und Leeren entfernt die Datei von der Seite. Die Seite öffnet nie Zeilendaten: sie liest nur Seite 1 und die Schema-Seiten.

    1. Klicken Sie auf Lokale Datei wählen und wählen Sie die gewünschte .sqlite-, .db- oder .sqlite3-Datei.
    2. Lesen Sie den Header-Bericht: Dateiname, Größe in Bytes, Seitengröße, Seitenzahl, Schreib- und Leseformatversion, Textkodierung, Schemaformat und Application-ID.
    3. Prüfen Sie die Schema-Tabelle: eine Zeile pro Objekt, mit Typ, Name und dem CREATE-Befehl, wie SQLite ihn speichert.
    4. Lesen Sie die Hinweise: dort wird eine leere Schema-Tabelle erklärt und es wird gezählt, wie viele interne Objekte mit Namen ab sqlite_ in der Liste stehen.
    5. Klicken Sie auf Leeren, um die Datei von der Seite zu entfernen.

    Was der Inspektor liest

    Der gemeldete Header

    Der Header-Bericht gibt die ersten 100 Bytes der Datei als benannte Felder wieder: bytes ist die Dateigröße, page_size die von der Datenbank angegebene Seitengröße (der Wert 1 bedeutet 65536) und pages die Dateigröße geteilt durch die Seitengröße. file_format_write_version und file_format_read_version sind 1 bei einer Rollback-Journal-Datenbank und 2 bei einer WAL-Datenbank; text_encoding ist UTF-8, UTF-16le, UTF-16be oder "not declared", genau wie im Header angegeben.

    schema_format und application_id stammen aus demselben Header-Block. Sie werden als Zahlen ausgegeben, weil die Datei sie so enthält; die Seite deutet nicht, was eine Application-ID bedeutet.

    Schema-Objekte

    Die Tabelle wird aus dem sqlite_schema-B-Baum auf Seite 1 gelesen, in der Reihenfolge, in der die Objekte angelegt wurden, und behält den SQL-Text unverändert, einschließlich zitierter Namen wie "user data", nicht-ASCII-Namen und mehrzeiliger Trigger-Rümpfe. Eine Tabelle mit 130 Spalten und einer 6 KB langen CHECK-Klausel wurde vollständig angezeigt, und eine Datenbank mit 400 Objekten listete alle 400.

    Auch die Objekte, die SQLite selbst anlegt, stehen in der Liste: eine UNIQUE-Spalte erzeugt einen sqlite_autoindex_*-Index, AUTOINCREMENT die Tabelle sqlite_sequence. Ein Hinweis nennt die Anzahl dieser internen Objekte, damit sie nicht für eigene Objekte gehalten werden.

    Was sie nicht sagen kann

    Gelesen wird nur die ausgewählte Datenbankdatei. Im WAL-Modus können die neuesten Änderungen noch in der separaten -wal-Datei liegen, und diese Seite liest diese Nebendatei nicht; ein Schema aus einer WAL-Sitzung ohne Checkpoint kann also fehlen. Zeilendaten werden nie dekodiert: die Seite zeigt keine Tabelleninhalte, führt keine Integritätsprüfung aus und repariert keine Dateien.

    Eine Datei ohne die Signatur SQLite format 3, eine Datei unter 100 Bytes oder ein Header mit unmöglicher Seitengröße werden mit einer Meldung abgewiesen, und der vorherige Bericht wird geleert, damit nichts von einer früheren Datei stehen bleibt.

    Zuletzt verwendet: