много всего и тестовые данные
This commit is contained in:
@@ -251,18 +251,18 @@ public class AbsenceController {
|
||||
|
||||
### Правила
|
||||
|
||||
1. **Никогда** не изменяйте уже закоммиченные файлы миграций без прямой просьбы пользователя
|
||||
2. Имя файла: `V{номер}__{описание}.sql` (два подчёркивания!)
|
||||
3. Нумерация строго инкрементальная: `V1`, `V2`, `V3`, ...
|
||||
4. После добавления — перезапустите backend для применения
|
||||
1. До отдельного решения владельца вся постоянная схема изменяется только в `V1__init.sql`
|
||||
2. `V2__test_data.sql` предназначена исключительно для тестовых и демонстрационных данных;
|
||||
постоянный DDL в ней запрещён
|
||||
3. Не создавайте `V3` и следующие миграции, пока владелец не отменит режим пересобираемого baseline
|
||||
4. Любое изменение V1/V2 требует полного сброса затронутых tenant-БД из-за checksum mismatch
|
||||
5. Не сбрасывайте tenant-БД без прямой команды владельца
|
||||
|
||||
Изменение `V1__init.sql` допустимо только как осознанное исключение на этапе разработки. Для уже применённой `V1` требуется полный сброс tenant-схем или удаление истории Flyway перед запуском backend, иначе будет checksum mismatch.
|
||||
|
||||
`V1__init.sql` зафиксирован как baseline: по прямому решению владельца в него объединено
|
||||
содержимое прежних разработческих V2–V7, а также таблицы отсутствий, решений по заменам,
|
||||
пожеланий и заявок преподавателей. Новые изменения существующих tenant-БД оформляются только
|
||||
отдельными инкрементальными миграциями. Текущая `V2__backfill_default_theory_periods.sql`
|
||||
заполняет кодом `Т` полностью пустые календарные графики и не изменяет V1.
|
||||
`V1__init.sql` содержит только структуру: таблицы, функции, триггеры, индексы, ограничения
|
||||
и комментарии. `V2__test_data.sql` содержит все прежние seed-записи, большой связанный набор
|
||||
и заполнение периодов `Т` для полностью пустых календарных графиков. Такое разделение позволяет
|
||||
отдельно проверить schema-only V1, но обе миграции по-прежнему автоматически применяются ко
|
||||
всем tenant-БД.
|
||||
|
||||
### Применение
|
||||
|
||||
@@ -270,6 +270,10 @@ public class AbsenceController {
|
||||
# Локально — сброс и повтор всех миграций
|
||||
docker compose down -v && docker compose up -d
|
||||
|
||||
# Интеграционная проверка V1/V2 на PostgreSQL через Testcontainers
|
||||
cd backend
|
||||
mvn -Dtest='com.magistr.app.migration.*IntegrationTest' test
|
||||
|
||||
# Продакшн — применить к существующим тенантам
|
||||
kubectl rollout restart deployment backend -n magistr
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user