From c10198515c7426421abe2f78e3b6196b3dc56cb1 Mon Sep 17 00:00:00 2001 From: ProstoDenya01 Date: Wed, 18 Mar 2026 15:39:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=82=D0=B0=D0=B1=D0=BB=D0=B8=D1=86=D1=8B=20=D0=B8=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V2__departmentCreate.sql | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 backend/src/main/resources/db/migration/V2__departmentCreate.sql 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