Как узнать версию файла базы данных SQLITE


82

У меня есть несколько файлов базы данных sqlite. Я хочу знать версию файла базы данных, т.е. была ли база данных создана с помощью sqlite2 или sqlite3 или любой другой основной / дополнительной версии (а не библиотеки sqlite или драйвера, user_version или schema_version).


3
Вы должны отметить ответ, получивший наибольшее количество голосов ниже, как ответ.
Fmstrat

14
Позволю себе не согласиться. ОП должен принять ответ, который отвечал на его вопрос и помог ему. Слишком часто это не самый популярный ответ, а иногда самый популярный ответ категорически неверен.
Mawg просит восстановить Монику

Ответы:


122

Вы можете написать эту команду в любом проводнике sqlite, который предоставит версию sqlite

select sqlite_version();

50
Это вернет версию библиотеки, а не версию файла базы данных.
laalto

Комментарий @laalto подтвержден этим официальным документом: sqlite.org/lang_corefunc.html#sqlite_version
Паоло Фулгони

Действительно, предыдущая функция в ссылке @Paolo относится к sqlite_source_id (), поэтому вам просто нужно увидеть дату выпуска SQLite, и вы можете получить версию
оливье Хуссен

4
Хотя это не ответ на вопрос, я пришел сюда из Google в поисках этого ответа…
o0 '.

87

Вы можете получить номер версии файла базы данных Magic Header String:

  • sqlite2 ==> первые 48 байтов
  • sqlite3 ==> первые 16 байт

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

$ head -c 16 file3.db
SQLite format 3

Более простой способ - использовать fileкоманду:

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

$ file file3.db
file3.db: SQLite 3.x database

5
Это единственный правильный ответ на вопрос, большое спасибо!
Jérôme B

Наивный способ - открыть файл с помощью Notepad ++ (не делайте этого, если файл большой!)
Паоло Фульгони

@PaoloFulgoni XVI32 - тоже хороший инструмент для этих задач.
Нильс Линдеманн

22

Получить user_version: запустить sql: PRAGMA user_version;

Получите schema_version: PRAGMA schema_version;

При создании файла базы данных (.db) user_version может быть установлен пользователем.


19

Правильный ответ программы sqlite версии 3:

sqlite3 --version

2
Это версия программы sqlite3, а не версия базы данных, созданная SQLite.
Мэтт Чан


1

Я обнаружил, что это самый простой способ определить версию sqlite. Запустите Python IDLE Shell, затем сделайте следующее:

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

В моем случае это было 2.6.0. Надеюсь, это поможет ... Марк


2
fyi, чтобы запустить Python IDLE Shell, просто введите в pythonтерминале, и вы увидите>>>
thehme

9
Это дает версию модуля, а не версию SQLite. Для этого используйте sqlite3.sqlite_version. docs.python.org/3.5/library/…
Бертран Бордаж,

1

Вам нужно открыть оболочку Python и написать следующие шаги:

import sqlite3

sqlite3.sqlite_version

Это дает вам версию sqlite3, используемую Python.
John Go-Soco

Может быть, это неправильно для некоторых пользователей, но я должен указать, что в моем случае использование Django в Ubuntu 18.04 фактически было единственным способом, который работал. Как ни странно, попытка "sqlite3 --version" в командной оболочке будет утверждать, что sqlite3 не установлен, тогда как выполнение этого внутри python сообщило мне, какая версия используется django / python, что я и искал.
rossdavidh

0

Если у вас есть подключение к нему в Visual Studio, вы можете щелкнуть правой кнопкой мыши базу данных в Server Explorer, выбрать свойства, и версия будет отображаться в окне свойств (как ни странно). Возможно, вам придется сначала щелкнуть базу данных левой кнопкой мыши, чтобы открыть ее.


1
Я думаю, что OP спрашивает о sqlite, а не о sql-сервере.
Кшитиз Шарма

0

Проверить файл руководства

sqlite3.version Номер версии этого модуля в виде строки. Это не версия библиотеки SQLite.

sqlite3.version_info Номер версии этого модуля в виде набора целых чисел. Это не версия библиотеки SQLite.

sqlite3.sqlite_version Номер версии библиотеки времени выполнения SQLite в виде строки.

sqlite3.sqlite_version_info Номер версии библиотеки времени выполнения SQLite в виде кортежа целых чисел.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.