2.5 KiB
2.5 KiB
Preflight перед миграциями групп и курсов
Перед любыми миграциями обязателен backup: ./deploy/backup.sh backup
(см. ../BACKUP.md). Preflight не заменяет backup.
Два скрипта только читают данные:
groups-courses.sql— до миграций: проблемы, которые могут помешать;groups-courses-post.sql— после миграций и bootstrap курса C: проверка результата.
До миграций
psql -h localhost -U lms -d lms -f deploy/preflight/groups-courses.sql
Проверяет:
- группы, имя которых не разбирается шаблоном;
- одинаковые кортежи
(stream, degree, number, course, enrollment_year); - группы без полного набора полей;
- одинаковые имена групп;
- студентов без текущей группы;
- дубли номеров лабораторных при переносе в один курс;
- дубли slug глав;
- объём материалов и активов.
После миграций и bootstrap
psql -h localhost -U lms -d lms -f deploy/preflight/groups-courses-post.sql
Проверяет:
- лабы без курса (должно быть
0передSET NOT NULL); - главы без курса (должно быть
0, если все текущие материалы курсовые); - наличие ровно одного курса C;
- комментарии без автора;
- статусы аккаунтов;
- группы без полного разбора.
Что делать с результатами
- Группы с нестандартными именами — разобрать вручную и заполнить поля до
перехода на
NOT NULL. - Одинаковые кортежи — исправить номер или год набора.
- Дубли номеров лаб — перенумеровать или разнести по разным курсам до
включения
UNIQUE (number, course_id)/NOT NULL. - Дубли slug — переименовать главы до частичных индексов.
- После bootstrap курса C проверить, что
labs_without_course = 0иchapters_without_course = 0.