reindex: пересборка витрины проигрыванием журнала
- `healthlog reindex` собирает витрину из журнала (тела архива + учёт доставок) в ОТДЕЛЬНЫЙ файл базы, строго по `(received_at, id)`; рабочую базу читает без наката миграций и не трогает вовсе. Подмену делает человек при остановленном сервисе: переименование поверх открытого дескриптора портит базу молча. - Журналом считается архив, а не таблица доставок: тело без учётной записи заводится заново (метка из ULID, размер и хеш по распакованному телу), запись без тела переносится, но не сворачивается. Оракул сходимости встроен — два отпечатка и «объектов было/стало»; пустой журнал успехом не считается. - Прогон живого архива переехал на новый пакет: второго проигрывателя журнала в проекте не осталось, а его утверждение о ключе сна перестало быть константой, протухающей с каждой доставкой.
This commit is contained in:
@@ -27,6 +27,11 @@ db_path = "./data/healthlog.db" # файл SQLite; каталог долж
|
||||
archive_dir = "./data/raw" # корень сырого архива; создаётся при старте
|
||||
|
||||
[ingest]
|
||||
# ВНИМАНИЕ: параметр РЕТРОАКТИВЕН. Тем же пределом читаются тела из архива при
|
||||
# пересборке (`healthlog reindex`), поэтому понижение выбрасывает из
|
||||
# пересобранной витрины все уже принятые тела крупнее нового значения — они
|
||||
# начнут отказывать на каждом прогоне. Понижать только вместе с проверкой, что
|
||||
# таких тел в архиве нет.
|
||||
max_body_mb = 64 # максимальный размер тела запроса, МиБ; целое > 0. Больше — 413
|
||||
|
||||
[log]
|
||||
|
||||
Reference in New Issue
Block a user