feat: закрыть остаточные P1/P2 по профилю, когорте и ведомости
- профиль приведён к docs/09: variant/level, updatedBy/name, лимит попыток - V14: NOT NULL и полная уникальность когорты, preflight legacy-групп - возврат группы из архива и история членства на странице группы - пагинация групп и плоского списка материалов - пакетные сдачи ведомости одним запросом - XLSX-preflight импорта и audit-тесты ростера - LDD: 66 claims, 398 тестов, release PASS
This commit is contained in:
@@ -130,10 +130,24 @@ git pull
|
||||
|
||||
`deploy.sh up` **обязательно** делает backup перед обновлением. Если backup
|
||||
завершился ошибкой, деплой прерывается. Миграции БД (Flyway) применяются
|
||||
автоматически при старте сервисов: identity `V4–V13` (`V10` создаёт
|
||||
автоматически при старте сервисов: identity `V4–V14` (`V10` создаёт
|
||||
`identity.audit_events`, `V11` — `identity.refresh_tokens`, `V12` —
|
||||
`absolute_expires_at`, `V13` — keyset-индексы аудита), academic `V6–V12`,
|
||||
progress `V13`.
|
||||
`absolute_expires_at`, `V13` — keyset-индексы аудита, `V14` — финальные
|
||||
NOT NULL/unique ограничения когорты), academic `V6–V12`, progress `V13`.
|
||||
|
||||
Перед первым деплоем с legacy-данными проверьте, что у всех групп разобрана
|
||||
когорта (V5 заполняет её из имени `ПОТОК-КУРСНОМЕРСТЕПЕНЬ`):
|
||||
|
||||
```bash
|
||||
docker compose exec -T postgres psql -U lms -d lms -c "
|
||||
SELECT id, name, stream, degree, course, number, enrollment_year
|
||||
FROM identity.groups
|
||||
WHERE stream IS NULL OR degree IS NULL OR course IS NULL
|
||||
OR number IS NULL OR enrollment_year IS NULL;"
|
||||
```
|
||||
|
||||
Если строки есть, заполните поля вручную; иначе `V14` намеренно остановит
|
||||
миграцию с понятной ошибкой. Возврат из архива доступен на странице группы.
|
||||
|
||||
После обновления проверьте, что админ открывает `/admin/audit` и видит события
|
||||
(например, после входа в профиль студента — `PROFILE_VIEW`); преподаватель и
|
||||
|
||||
Reference in New Issue
Block a user