diff --git a/backend/src/main/resources/db/migration/V2__departmentCreate.sql b/backend/src/main/resources/db/migration/V2__departmentCreate.sql new file mode 100644 index 0000000..f584dfd --- /dev/null +++ b/backend/src/main/resources/db/migration/V2__departmentCreate.sql @@ -0,0 +1,104 @@ +-- =============================== +-- Создание таблицы кафедр +-- =============================== + +CREATE TABLE IF NOT EXISTS departments ( + id BIGSERIAL UNIQUE PRIMARY KEY NOT NULL, + name VARCHAR(255) NOT NULL, + code BIGINT UNIQUE NOT NULL +); + +INSERT INTO departments (name, code) VALUES + ('Кафедра ИБ', 1), + ('Кафедра ВТ', 2), + ('Кафедра КТ', 3); + +-- =============================== +-- Создание таблицы специальностей +-- =============================== + +CREATE TABLE IF NOT EXISTS specialties ( + id BIGSERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL, + specialty_code VARCHAR(255) NOT NULL +); + +INSERT INTO specialties (name, specialty_code) VALUES + ('Информационная безопасность', '10.03.01'), + ('Информатика и вычислительная техника', '09.03.01'), + ('Программная инженерия', '09.03.04'); + +-- =============================== +-- Обновление таблицы дисциплин +-- =============================== + +ALTER TABLE subjects +ADD COLUMN IF NOT EXISTS department_id BIGINT REFERENCES departments(id); + +UPDATE subjects +SET department_id = 1 +WHERE department_id IS NULL; + +ALTER TABLE subjects +ALTER COLUMN department_id SET NOT NULL; + +-- =============================== +-- Обновление таблицы групп +-- =============================== + +ALTER TABLE student_groups +ADD COLUMN IF NOT EXISTS department_id BIGINT REFERENCES departments(id); + +UPDATE student_groups +SET department_id = 1 +WHERE department_id IS NULL; + +ALTER TABLE student_groups +ALTER COLUMN department_id SET NOT NULL; + +-- =============================== +-- Обновление таблицы пользователей +-- =============================== + +ALTER TABLE users +ADD COLUMN IF NOT EXISTS full_name VARCHAR(255), +ADD COLUMN IF NOT EXISTS job_title VARCHAR(255), +ADD COLUMN IF NOT EXISTS department_id BIGINT REFERENCES departments(id); + +UPDATE users +SET (full_name, job_title, department_id) = + ('Иванов Админ Иванович', 'Доцент', 1) +WHERE id = 1; + +UPDATE users +SET (full_name, job_title, department_id) = + ('Петров Препод Петрович', 'Профессор', 2) +WHERE id = 2; + +ALTER TABLE users +ALTER COLUMN full_name SET NOT NULL, +ALTER COLUMN job_title SET NOT NULL, +ALTER COLUMN department_id SET NOT NULL; + +-- =============================== +-- Создание таблицы данных расписания +-- =============================== + +CREATE TABLE IF NOT EXISTS schedule_data ( + id BIGSERIAL PRIMARY KEY, + department_id BIGINT NOT NULL REFERENCES departments(id), + semester INT NOT NULL, + group_id BIGINT NOT NULL REFERENCES student_groups(id), + subjects_id BIGINT NOT NULL REFERENCES subjects(id), + lesson_type_id BIGINT NOT NULL REFERENCES lesson_types(id), + number_of_hours INT NOT NULL, + is_division BOOLEAN DEFAULT NOT NULL FALSE, + teacher_id BIGINT NOT NULL REFERENCES users(id), + semester_type VARCHAR(255) NOT NULL, + period VARCHAR(255) NOT NULL +); + +INSERT INTO schedule_data (department_id, semester, group_id, subjects_id, lesson_type_id, number_of_hours, is_division, teacher_id, semester_type, period) +VALUES (1, 1, 1, 1, 3, 2, true, 1, 'Весенний', '2024/2025'), + (2, 4, 2, 3, 2, 1, false, 2, 'Осенний', '2025/2026'), + (3, 5, 1, 2, 1, 3, true, 1, 'Весенний', '2023/2024'); \ No newline at end of file