# Цезий и sqlite3
Andrew Lobanov(tavern,1) — All
2017-04-26 13:01:16


Если есть желающие потестирвать сабж (неплохо было бы потестировать так же ходовые txt и ait форматы), это письмо обращено к вам!

Вот тут https://github.com/spline1986/caesium можно забрать это чудо.

Для надёжности, обзаведитесь резервной копией директории с вашим цезием.

Если используете ait-базу, то скопируйте из резервной копии директорию ait/ в свежескачанный цезий.

Вот тут http://idec.spline-online.tk/x/file/ait2sqlite.py можете взять скрипт для переноса базы в sqlite формат. Если вы используете отличную от ait базу, то сообщите мне прямо здесь - я напишу скрипт миграции и для вас.

В caesium.cfg необходимо указать формат базы:

db sqlite

после чего всё должно работать.

PS: Сегодняшние коммиты имели много изменений помимо внедрежа sqlite3. Так что если потестируете со своей базой, то тоже будет замечательно.

# Re: Цезий и sqlite3
Andrew Lobanov(tavern,1) — All
2017-04-26 13:20:34


И да. Необходимо снести файл counts.lst, так как изменения коснулись и кеширования x/c.

# Re: Цезий и sqlite3
Andrew Lobanov(tavern,1) — All
2017-04-27 05:18:52


Продолжаем.

Срочные изменения, ломающие совместимость со вчерашней sqlite-базой.

https://github.com/spline1986/caesium
http://idec.spline-online.tk/x/file/ait2sqlite.py

Нужно снова перенести ait-базу и снести counts.lst (по доброму бы и lasts.lst).

Теперь время хранится в INTEGER, что упростит многие фичи от сбора статистики до планируемых фич в цезии.

# Re: Цезий и sqlite3
vit01(mira, 1) — Andrew Lobanov
2017-04-27 07:31:41


> Теперь время хранится в INTEGER, что упростит многие фичи от сбора статистики до планируемых фич в цезии.

Посмотрел исходники. Точно, в INTEGER. Но самый лучший вариант - хранить время в BIGINT, дабы избежать проблемы 2038 года :)

# Re: Цезий и sqlite3
Andrew Lobanov(tavern,1) — vit01
2017-04-27 07:46:08


>> Теперь время хранится в INTEGER, что упростит многие фичи от сбора статистики до планируемых фич в цезии.
> Посмотрел исходники. Точно, в INTEGER. Но самый лучший вариант - хранить время в BIGINT, дабы избежать проблемы 2038 года :)

Выдержка из доки по sqlite:

INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

Я так понял, что оно будет по ситуации и 8 байт вполне себе решают проблему 2038 года.

Если я не прав, то с удовольствием об этом узнаю и исправлю sqlite.py пока не поздно.

# Re: Цезий и sqlite3
vit01(mira, 1) — Andrew Lobanov
2017-04-28 11:36:26


AL> Я так понял, что оно будет по ситуации и 8 байт вполне себе решают проблему 2038 года.

Да, действительно, я ошибся, он и правда до 8 байт.
Остальные варианты типа INTEGER, оказывается, алиасы, которые введены только лишь для совместимости с другими движками БД.