So finden Sie die Version der SQLITE-Datenbankdatei

82

Ich habe einige SQLite-Datenbankdateien. Ich möchte die Datenbankdateiversion kennen, dh ob die Datenbank mit sqlite2 oder sqlite3 oder einer anderen Haupt- / Unterversion erstellt wurde (nicht die sqlite-Bibliothek oder der Treiber oder user_version oder schema_version).

Srikanth S.
quelle
3
Sie sollten die Antwort mit der höchsten Bewertung unten als Antwort markieren.
Fmstrat
14
Ich bin anderer Ansicht. OP sollte die Antwort akzeptieren, die seine Frage beantwortete und ihm half. Allzu oft ist das nicht die beliebteste Antwort, und gelegentlich ist die beliebteste Antwort völlig falsch.
Mawg sagt, Monica

Antworten:

119

Sie können diesen Befehl in jeden SQLite-Explorer schreiben, der die SQLite-Version liefert

select sqlite_version();
Saurabh
quelle
49
Dies gibt die Bibliotheksversion zurück, nicht die Datenbankdateiversion.
Laalto
@laalto Kommentar von diesem offiziellen Dokument bestätigt: sqlite.org/lang_corefunc.html#sqlite_version
Paolo Fulgoni
In der Tat bezieht sich die vorhergehende Funktion in @Paolo Link auf sqlite_source_id (), mit dem Sie nur das SQLite-Veröffentlichungsdatum sehen müssen und Sie können die Version
Olivier Houssin
4
Dies ist zwar keine Antwort auf die Frage, aber ich bin von Google hierher gekommen, um nach dieser Antwort zu suchen …
o0 '.
85

Die Versionsnummer einer Datenbankdatei erhalten Sie unter Magic Header String:

  • sqlite2 ==> erste 48 Bytes
  • sqlite3 ==> die ersten 16 Bytes

$ head -c 48 file2.db
** This file contains an SQLite 2.1 database **

$ head -c 16 file3.db
SQLite format 3

Der einfachere Weg ist die Verwendung des fileBefehls:

$ file file2.db
file2.db: SQLite 2.x database

$ file file3.db
file3.db: SQLite 3.x database
kev
quelle
5
Das ist die einzig richtige Antwort auf die Frage, vielen Dank!
Jérôme B
Der naive Weg ist, die Datei mit Notepad ++ zu öffnen (tun Sie dies nicht, wenn die Datei groß ist!)
Paolo Fulgoni
@PaoloFulgoni XVI32 ist auch ein schönes Werkzeug für diese Aufgaben.
Nils Lindemann
21

Holen Sie sich user_version: run sql: PRAGMA user_version;

Holen Sie sich schema_version: PRAGMA schema_version;

Beim Erstellen einer Datenbankdatei (.db) kann user_version vom Benutzer festgelegt werden.

galian
quelle
18

Die richtige Antwort aus Version 3 des SQLite-Programms lautet:

sqlite3 --version
MSD561
quelle
2
Dies ist die Version des Programms sqlite3, nicht die Version der von SQLite erstellten Datenbank.
Matt Chan
4

Sie können die Informationen aus der Header-Datei extrahieren . Sie müssen die Datenbankdatei "von Hand" öffnen, aber ich weiß nicht, ob es eine API-Funktion gibt, um diese Informationen abzurufen.

Pablo Santa Cruz
quelle
1

Sie müssen die Python-Shell öffnen und dann die folgenden Schritte schreiben:

import sqlite3

sqlite3.sqlite_version
Techgeeks1
quelle
Dies gibt Ihnen die von Python verwendete sqlite3-Version.
John Go-Soco
Möglicherweise ist dies für einige Benutzer nicht korrekt, aber ich sollte darauf hinweisen, dass es in meinem Fall mit Django unter Ubuntu 18.04 tatsächlich der einzige Weg war, der funktioniert hat. Der Versuch, "sqlite3 --version" in der Befehlsshell zu versuchen, würde seltsamerweise behaupten, dass sqlite3 nicht installiert war, wohingegen es mir in Python sagte, welche Version django / python verwendete, wonach ich suchte.
Rossdavidh
0

Wenn Sie in Visual Studio eine Datenverbindung dazu haben, können Sie im Server-Explorer mit der rechten Maustaste auf die Datenbank klicken, Eigenschaften auswählen, und die Version wird im Eigenschaftenfenster angezeigt (überraschenderweise unter Version). Möglicherweise müssen Sie zuerst mit der linken Maustaste auf die Datenbank klicken, um sie zu öffnen.

George Williams
quelle
1
Ich denke, OP fragt nach SQLite, nicht nach SQL-Server.
Kshitiz Sharma
0

Ich fand, dass dies die einfachste Methode ist, um die Version von SQLite zu bestimmen. Führen Sie die Python IDLE-Shell aus und führen Sie dann die folgenden Schritte aus:

>>> import sqlite3
>>> sqlite3.version
'2.6.0'

In meinem Fall war es 2.6.0. Hoffe das hilft ... Mark

Kennzeichen
quelle
2
fyi, um die Python IDLE Shell auszuführen, geben Sie einfach pythondas Terminal ein, dann sehen Sie>>>
thehme
9
Dies gibt die Version des Moduls an, nicht die SQLite-Version. Verwenden Sie dazu sqlite3.sqlite_version. docs.python.org/3.5/library/…
Bertrand Bordage
0

Überprüfen Sie die manuelle Datei

sqlite3.version Die Versionsnummer dieses Moduls als Zeichenfolge. Dies ist nicht die Version der SQLite-Bibliothek.

sqlite3.version_info Die Versionsnummer dieses Moduls als Tupel von ganzen Zahlen. Dies ist nicht die Version der SQLite-Bibliothek.

sqlite3.sqlite_version Die Versionsnummer der SQLite-Laufzeitbibliothek als Zeichenfolge.

sqlite3.sqlite_version_info Die Versionsnummer der Laufzeit-SQLite-Bibliothek als Tupel von Ganzzahlen.

341152 Chyi
quelle