Простой способ хранить метаданные о базе данных SQLite - PullRequest
7 голосов
/ 04 марта 2012

Мне было интересно, есть ли простой способ хранения мета-информации о базе данных sqlite в этой базе данных.

Я специально думаю о номере версии, который позволит вам легко узнать, какую версию макета базы данных вы используете (поэтому мой код может проверить, совместима ли структура базы данных, не запрашивая SELECT sql FROM sqlite_master WHERE type='table'; и сравнивая результат с предопределенным схему). Чтобы уточнить: меня не интересует номер версии программного обеспечения sqlite, но что-то похожее на переменную pythons __version__, которую можно определить отдельно для каждого файла python.

Я знаю, что могу, вероятно, просто создать таблицу с именем "meta" и сохранить ее там, но мне было интересно, есть ли лучший способ сделать это.

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

Ответы [ 2 ]

4 голосов
/ 04 марта 2012

Возможно, вы захотите проверить прагму user_version .

2 голосов
/ 21 ноября 2016

SQLite предлагает два слота для хранения целого числа в качестве метаданных.

application_id

https://www.sqlite.org/pragma.html#pragma_application_id

Установите application_id равным 900

PRAGMA application_id = 900;

Получить application_id

PRAGMA application_id;

user_version

https://www.sqlite.org/pragma.html#pragma_user_version

Установите для user_version значение 901

.
PRAGMA user_version = 901;

Получить user_version

PRAGMA user_version;
...