39 lines
1.4 KiB
SQL
39 lines
1.4 KiB
SQL
-- Пост-миграционные проверки. Запускать после миграций и bootstrap курса C.
|
|
\pset pager off
|
|
|
|
\echo '=== 1. Лабы без курса (должно быть 0 перед SET NOT NULL) ==='
|
|
SELECT count(*) AS labs_without_course
|
|
FROM academic.labs
|
|
WHERE course_id IS NULL;
|
|
|
|
\echo '=== 2. Главы без курса (должно быть 0, если все текущие материалы курсовые) ==='
|
|
SELECT count(*) AS chapters_without_course
|
|
FROM academic.chapters
|
|
WHERE course_id IS NULL;
|
|
|
|
\echo '=== 3. Курсы (должен быть ровно один курс C) ==='
|
|
SELECT id, course_no, title, owner_account_id, status
|
|
FROM academic.courses
|
|
ORDER BY course_no;
|
|
|
|
\echo '=== 4. Комментарии без автора (старые записи) ==='
|
|
SELECT count(*) AS comments_without_author
|
|
FROM progress.grade_comments
|
|
WHERE author_account_id IS NULL;
|
|
|
|
\echo '=== 5. Аккаунты по ролям и статусам ==='
|
|
SELECT role, status, count(*) AS accounts
|
|
FROM identity.accounts
|
|
GROUP BY role, status
|
|
ORDER BY role, status;
|
|
|
|
\echo '=== 6. Группы без полного разбора ==='
|
|
SELECT id, name, stream, course, number, degree, enrollment_year
|
|
FROM identity.groups
|
|
WHERE stream IS NULL
|
|
OR course IS NULL
|
|
OR number IS NULL
|
|
OR degree IS NULL
|
|
OR enrollment_year IS NULL
|
|
ORDER BY name;
|