From c80e029b96446aba26bb8be77a41f559385fc4ab Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Sun, 4 Oct 2026 20:53:24 +0400 Subject: [PATCH] =?UTF-8?q?chore(openspec):=20D-1=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=D0=B2=D0=B5=D0=B4=D1=91=D0=BD=20=D0=BA=20=D1=84=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B9=20=D0=BC=D0=B8?= =?UTF-8?q?=D0=B3=D1=80=D0=B0=D1=86=D0=B8=D0=B8=200002?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2 --- openspec/changes/slice-1-directories/design.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openspec/changes/slice-1-directories/design.md b/openspec/changes/slice-1-directories/design.md index d30030b..b12ab1b 100644 --- a/openspec/changes/slice-1-directories/design.md +++ b/openspec/changes/slice-1-directories/design.md @@ -26,7 +26,7 @@ ## Decisions ### D-1. Миграция `0002_dbml_v5_14`, явный DDL, как 0001 -`ADD COLUMN kind related_group_kind` (для существующих строк — `UPDATE … FROM related_group`, затем `SET NOT NULL`), `DROP INDEX +`kind related_group_kind` добавляется пересозданием `related_group_member` (R-5, решение №16: `ADD COLUMN` ставит колонку в конец, а DBML и тест «схема = create_all» требуют порядок; строки копируются с `kind` из `related_group`), `DROP INDEX uq_related_group_member_entity_current`, `CREATE UNIQUE INDEX uq_related_group_member_entity_kind_current ON (legal_entity_id, kind) WHERE is_current`; `ALTER TYPE audit_action ADD VALUE` ×2 (`LEGAL_ENTITY_CHANGE` после `GROUP_CHANGE`, `USER_CHANGE` после `USER_ROLE_CHANGE` — порядок как в DBML, сверка enum'ов сравнивает упорядоченный список). `ADD VALUE` необратим в PostgreSQL → @@ -146,4 +146,4 @@ WHERE is_current`; `ALTER TYPE audit_action ADD VALUE` ×2 (`LEGAL_ENTITY_CHANGE | 13 | 2026-10-04 | R-2 (SDD фаза 1, pre-flight): `q` в списке ГК ищет по `name`/`crm_id`/`code` (подстрока без регистра), как в спеке, а не только по имени, как в плане | спека — источник истины; план её сужал | нет: надмножество поиска | | 14 | 2026-10-04 | R-3 (SDD фаза 1, pre-flight): `GET …/history` для ГК и ЮЛ — по убыванию `valid_from` | так сказано в спеке; план порядок не задавал | порядок вывода, меняется одной строкой | | 15 | 2026-10-04 | R-4 (SDD фаза 1, pre-flight): `q` в списке ЮЛ ищет по `name` и `inn` (подстрока) | спека `directories-api`; план не уточнял | нет: надмножество поиска | -| 16 | 2026-10-04 | R-5 (SDD фаза 1, Task 1): upgrade 0002 пересоздаёт `related_group_member` (копия → drop → create в порядке колонок DBML → insert), а не `ADD COLUMN`; downgrade — по плану | DBML v5.14 ставит `kind` после `legal_entity_id`, а `ADD COLUMN` добавляет в конец; тест Среза 0 `test_migrated_schema_equals_orm_create_all` сверяет порядок колонок | вернуть `ADD COLUMN` и ослабить сравнение колонок (без порядка) в тесте и миграции | +| 16 | 2026-10-04 | R-5 (SDD фаза 1, Task 1): upgrade 0002 пересоздаёт `related_group_member` (копия → drop → create в порядке колонок DBML → insert), а не `ADD COLUMN`; downgrade — по плану | DBML v5.14 ставит `kind` после `legal_entity_id`, а `ADD COLUMN` добавляет в конец; тест Среза 0 `test_migrated_schema_equals_orm_create_all` сверяет порядок колонок | вернуть `ADD COLUMN` и ослабить сравнение колонок (без порядка) в тесте и миграции; пересоздание теряет GRANT/RLS/триггеры, добавленные платформой вне Alembic (T1.2) |