Jak znaleźć wersję pliku bazy danych SQLITE

82

Mam kilka plików bazy danych sqlite. Chcę poznać wersję pliku bazy danych, tj. Czy baza danych została utworzona za pomocą sqlite2 lub sqlite3 lub dowolnej innej wersji głównej / podrzędnej (nie dotyczy to biblioteki lub sterownika sqlite, wersji_użytkownika lub wersji_schematu).

Srikanth S
źródło
3
Jako odpowiedź należy oznaczyć poniżej najwyższą liczbę głosów.
Fmstrat
14
Pozwolę sobie być innego zdania. OP powinien przyjąć odpowiedź, która odpowiedziała na jego pytanie i pomogła mu. Zbyt często nie jest to najpopularniejsza odpowiedź, a czasami najbardziej popularna odpowiedź jest całkowicie błędna.
Mawg mówi, że przywróć Monikę

Odpowiedzi:

122

Możesz napisać to polecenie w dowolnym eksploratorze sqlite, który poda wersję sqlite

select sqlite_version();
saurabh
źródło
50
To zwróci wersję biblioteki, a nie wersję pliku bazy danych.
laalto
Komentarz @laalto potwierdzony przez ten oficjalny dokument: sqlite.org/lang_corefunc.html#sqlite_version
Paolo Fulgoni
Rzeczywiście, poprzednia funkcja w linku @Paolo odnosi się do sqlite_source_id (), dzięki czemu wystarczy zobaczyć datę wydania SQLite i możesz pobrać wersję
olivier houssin
4
Chociaż to nie jest odpowiedź na pytanie, przyszedłem tutaj z Google w poszukiwaniu tej odpowiedzi…
o0 '.
87

Numer wersji pliku bazy danych można uzyskać poprzez Magic Header String:

  • sqlite2 ==> pierwsze 48 bajtów
  • sqlite3 ==> pierwsze 16 bajtów

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

$ head -c 16 file3.db
SQLite format 3

Najłatwiejszym sposobem jest użycie filepolecenia:

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

$ file file3.db
file3.db: SQLite 3.x database
kev
źródło
5
To jedyna poprawna odpowiedź na pytanie, wielkie dzięki!
Jérôme B
Naiwnym sposobem jest otwarcie pliku w Notepad ++ (nie rób tego, jeśli plik jest duży!)
Paolo Fulgoni
@PaoloFulgoni XVI32 jest również dobrym narzędziem do tych zadań.
Nils Lindemann
22

Uzyskaj wersję_użytkownika: uruchom sql: PRAGMA user_version;

Pobierz schema_version: PRAGMA schema_version;

Podczas tworzenia pliku bazy danych (.db), wersja_użytkownika może być ustawiona przez użytkownika.

galian
źródło
19

Prawidłowa odpowiedź z wersji 3 programu sqlite to:

sqlite3 --version
MSD561
źródło
2
To jest wersja programu sqlite3, a nie wersja bazy danych utworzona przez SQLite.
Matt Chan,
4

Możesz wyodrębnić informacje z pliku nagłówkowego . Będzie to wymagało otwarcia pliku bazy danych „ręcznie”, ale nie wiem, czy istnieje funkcja API umożliwiająca uzyskanie tych informacji.

Pablo Santa Cruz
źródło
1

Okazało się, że jest to najłatwiejsza metoda określenia wersji sqlite. Uruchom Python IDLE Shell, a następnie wykonaj następujące czynności:

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

W moim przypadku było to 2.6.0. Mam nadzieję, że to pomoże ... Mark

znak
źródło
2
fyi, aby uruchomić Python IDLE Shell, po prostu wpisz w pythonterminalu, a zobaczysz>>>
thehme
9
Daje to wersję modułu, a nie wersję SQLite. Aby to zrobić, użyj sqlite3.sqlite_version. docs.python.org/3.5/library/…
Bertrand Bordage
1

Musisz otworzyć powłokę Pythona, a następnie napisać następujące kroki:

import sqlite3

sqlite3.sqlite_version
Techgeeks1
źródło
To daje wersję sqlite3 używaną przez Pythona.
John Go-Soco
Może nie być poprawne dla niektórych użytkowników, ale powinienem zwrócić uwagę, że w moim przypadku, używając Django na Ubuntu 18.04, był to właściwie jedyny sposób, który działał. Wypróbowanie "sqlite3 --version" w powłoce poleceń, co dziwne, stwierdziłoby, że sqlite3 nie zostało zainstalowane, podczas gdy zrobienie tego w Pythonie powiedziało mi, jakiej wersji używa django / python, a tego właśnie szukałem.
rossdavidh
0

Jeśli masz połączenie danych z nim w programie Visual Studio, możesz kliknąć prawym przyciskiem myszy bazę danych w Eksploratorze serwera, wybrać właściwości, a wersja zostanie wyświetlona w oknie właściwości (w sekcji Wersja, co zaskakujące). Może być konieczne wcześniejsze kliknięcie bazy danych lewym przyciskiem myszy, aby ją otworzyć.

George Williams
źródło
1
Myślę, że OP pyta o sqlite, a nie sql-server.
Kshitiz Sharma
0

Sprawdź plik instrukcji

sqlite3.version Numer wersji tego modułu w postaci ciągu. To nie jest wersja biblioteki SQLite.

sqlite3.version_info Numer wersji tego modułu, jako krotka liczb całkowitych. To nie jest wersja biblioteki SQLite.

sqlite3.sqlite_version Numer wersji wykonawczej biblioteki SQLite w postaci ciągu.

sqlite3.sqlite_version_info Numer wersji wykonawczej biblioteki SQLite, jako krotka liczb całkowitych.

341152 Chyi
źródło