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

82

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

Srikanth S
источник
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 может быть установлен пользователем.

Galian
источник
19

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

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

Вы можете извлечь информацию из файла заголовка . Вам потребуется открыть файл базы данных «вручную», но я не знаю, есть ли функция API для получения этой информации.

Пабло Санта Крус
источник
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
Techgeeks1
источник
Это дает вам версию 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 в виде кортежа целых чисел.

341152 Chyi
источник