department_dev #8
104
backend/src/main/resources/db/migration/V2__departmentCreate.sql
Normal file
104
backend/src/main/resources/db/migration/V2__departmentCreate.sql
Normal file
@@ -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');
|
||||
Reference in New Issue
Block a user