5.2.2: Логирование пути и версии миграций
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m21s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m21s
This commit is contained in:
37
.cursor/plans/normalized_total_score_fix_migration.plan.md
Normal file
37
.cursor/plans/normalized_total_score_fix_migration.plan.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
name: normalized_total_score fix migration
|
||||
overview: "Новая миграция 000023: пересоздать weekly_report_mv с max_goal_score и удалить max_score из weekly_goals."
|
||||
todos:
|
||||
- id: migration-up
|
||||
content: "Добавить 000023 up: DROP MV, CREATE MV с max_goal_score (из 000020), DROP COLUMN IF EXISTS max_score"
|
||||
status: pending
|
||||
- id: migration-down
|
||||
content: "Добавить 000023 down: восстановить MV со старой формулой (max_score) и колонку max_score"
|
||||
status: pending
|
||||
- id: verify-local
|
||||
content: Применить миграцию локально и проверить Релокация 2026-08 (normalized 32.74 и 21.55)
|
||||
status: pending
|
||||
isProject: false
|
||||
---
|
||||
|
||||
# План: Исправить normalized_total_score через новую миграцию
|
||||
|
||||
## Проблема
|
||||
|
||||
На проде (и в локальной копии продовой БД) `normalized_total_score` не учитывает `max_goal_score`: в определении материализованного представления `weekly_report_mv` до сих пор используется колонка `wg.max_score`, которая не заполняется (всегда NULL) → формула всегда даёт `normalized_total_score = total_score`.
|
||||
|
||||
## Решение
|
||||
|
||||
Новая миграция (не менять 000020/000022):
|
||||
|
||||
1. **Пересоздать `weekly_report_mv**` с определением из 000020: в формуле использовать `max_goal_score`, тот же подзапрос по `n.created_date` и фильтр «только прошлые недели».
|
||||
2. **Удалить колонку `max_score` из `weekly_goals**`, если есть: `ALTER TABLE weekly_goals DROP COLUMN IF EXISTS max_score;`
|
||||
|
||||
После применения и `REFRESH` (или при следующем кроне) для прошлых недель normalized будет ограничиваться целями (например, Релокация 2026-08: 39.14 → 32.74).
|
||||
|
||||
## Todos
|
||||
|
||||
- **migration-up** — Добавить миграцию `000023_fix_weekly_report_mv_use_max_goal_score.up.sql`: DROP MV, CREATE MV с max_goal_score (копия определения из 000020), DROP COLUMN IF EXISTS max_score в weekly_goals
|
||||
- **migration-down** — Добавить `000023_fix_weekly_report_mv_use_max_goal_score.down.sql`: восстановить MV со старой формулой (max_score) и колонку max_score в weekly_goals
|
||||
- **verify-local** — Применить миграцию локально и проверить по Релокации за 2026-08: normalized_total_score = 32.74 (project_id 27) и 21.55 (project_id 592)
|
||||
|
||||
Reference in New Issue
Block a user