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).


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();

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

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.


19

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

sqlite3 --version

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.


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


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

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ć.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.