учёт: закрыт переезд хранилища, заведён урожай его ревью
- storage-without-pocketbase закрыта как реализованная: приёмка сошлась по всем
пяти критериям записи и по двенадцати приёмочным свойствам рубрики ревью
дизайна, работа лежит коммитом c9b7765
- урожай триажа ревью развёрнут в одиннадцать записей с тегом партии
review-2026-08-23 и расставлен по зависимости, а не в конец списка
- находка про признак живости воркера слита в stalled-pipeline-metric: у неё та
же причина — вставший конвейер неотличим от простоя
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# 🧹 Свести норму схемы со служебной таблицей goose
|
||||
|
||||
- **Тип:** chore
|
||||
- **Категория:** Очередь — Та же окрестность, что и сведение документов: норма схемы объявлена в database.md, а держит её сторож
|
||||
- **Зачем:** Таблица учёта goose_db_version несёт второй вид времени и своё умолчание, а норма схемы объявлена абсолютной; сторож перечисляет наши таблицы поимённо и служебной не видит вовсе.
|
||||
- **Теги:** review-2026-08-23, question
|
||||
|
||||
Норма схемы объявлена абсолютной: [database.md](../../docs/database.md)
|
||||
описывает таблицы сервиса, а сторож `internal/archrules` перечисляет их поимённо
|
||||
и сверяет с применённой схемой. Таблицы учёта `goose_db_version` в этом перечне
|
||||
нет, и она под норму не подпадает: время в ней своего вида, у колонки своё
|
||||
умолчание — то и другое ставит goose, а не мы.
|
||||
|
||||
Сегодня расхождение молчит: сторож смотрит только на названные таблицы. Стоит
|
||||
ему начать смотреть на применённую схему целиком, и он покраснеет на таблице,
|
||||
которую мы не заводили и править не можем.
|
||||
|
||||
Исход — выбор нормы, а не правка кода: либо требование сужается и называет
|
||||
таблицу учёта прямо, либо сторож расширяется на всю применённую схему с
|
||||
поимённым исключением.
|
||||
|
||||
Нашёл проход `review-specs` (S2) ревью change
|
||||
`2026-08-23-storage-without-pocketbase`.
|
||||
|
||||
## Затрагивает
|
||||
|
||||
- [docs/database.md](../../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 не заменяется и её таблица
|
||||
учёта не переименовывается.
|
||||
Reference in New Issue
Block a user