- storage-without-pocketbase закрыта как реализованная: приёмка сошлась по всем
пяти критериям записи и по двенадцати приёмочным свойствам рубрики ревью
дизайна, работа лежит коммитом c9b7765
- урожай триажа ревью развёрнут в одиннадцать записей с тегом партии
review-2026-08-23 и расставлен по зависимости, а не в конец списка
- находка про признак живости воркера слита в stalled-pipeline-metric: у неё та
же причина — вставший конвейер неотличим от простоя
4.0 KiB
🧹 Свести норму схемы со служебной таблицей goose
- Тип: chore
- Категория: Очередь — Та же окрестность, что и сведение документов: норма схемы объявлена в database.md, а держит её сторож
- Зачем: Таблица учёта goose_db_version несёт второй вид времени и своё умолчание, а норма схемы объявлена абсолютной; сторож перечисляет наши таблицы поимённо и служебной не видит вовсе.
- Теги: review-2026-08-23, question
Норма схемы объявлена абсолютной: database.md
описывает таблицы сервиса, а сторож internal/archrules перечисляет их поимённо
и сверяет с применённой схемой. Таблицы учёта goose_db_version в этом перечне
нет, и она под норму не подпадает: время в ней своего вида, у колонки своё
умолчание — то и другое ставит goose, а не мы.
Сегодня расхождение молчит: сторож смотрит только на названные таблицы. Стоит ему начать смотреть на применённую схему целиком, и он покраснеет на таблице, которую мы не заводили и править не можем.
Исход — выбор нормы, а не правка кода: либо требование сужается и называет таблицу учёта прямо, либо сторож расширяется на всю применённую схему с поимённым исключением.
Нашёл проход review-specs (S2) ревью change
2026-08-23-storage-without-pocketbase.
Затрагивает
- docs/database.md — формулировка нормы схемы;
- спека
storage— требование о составе схемы; - сторож
internal/archrules— перечень таблиц и то, что он сверяет; - каталог шагов
internal/adapter/repo/sqlite/migrations— только чтением.
Критерии приёмки
- Норма схемы называет таблицу учёта явно: либо как исключение, либо как
предмет. Оракул: чтение
docs/database.mdи спеки рядом — проgoose_db_versionсказано, чья она и почему её колонки другие. - Сторож судит то, что объявлено нормой, и краснеет на расхождении. Оракул:
мутация — завести колонку мимо шага схемы либо снять таблицу из перечня, и
go test ./internal/archrules/краснеет. - Служебная таблица сторожа не роняет. Оракул:
task gateзелёный на применённой схеме целиком.
Вопросы
- Что становится нормой: сузить требование и назвать таблицу учёта goose исключением — или расширить сторож на всю применённую схему с поимённым исключением? Первое дешевле и оставляет сторожа слепым к таблице, заведённой мимо шага схемы; второе ловит такую таблицу, но требует держать перечень исключений.
Рамки
Применённые шаги схемы не переписываются. Сама goose не заменяется и её таблица учёта не переименовывается.