Назначение резервного задания: Данное задание предназначено для самостоятельного освоения и дистанционной сдачи практического этапа версионирования схемы базы данных, разработки миграций Flyway и регрессионного тестирования (в случае пропуска аудиторного занятия или по индивидуальному графику обучения).
В рамках релиза корпоративной системы управления проектами требуется модифицировать схему базы данных. Исходная таблица сотрудников содержит базовую информацию:
CREATE TABLE project_employees (
employee_id SERIAL PRIMARY KEY,
full_name VARCHAR(120) NOT NULL,
department VARCHAR(50) NOT NULL,
salary NUMERIC(10, 2) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
Постановка задачи релиза v2.1:
company_departments (dept_id SERIAL PRIMARY KEY, dept_name VARCHAR(50) NOT NULL UNIQUE, head_officer VARCHAR(120) NOT NULL).project_employees внешний ключ dept_id, ссылающийся на company_departments(dept_id).dept_id не должно ломать старые операции вставки! Предусмотреть значение по умолчанию для существующих и новых сотрудников.Смоделируйте сценарий отката релиза (Rollback) в случае выявления критических дефектов интеграции. Скрипт отката должен вернуть схему базы данных к исходному состоянию версии 1.0.
Требования к скрипту отката:
IF EXISTS).Сформируйте SQL-запрос INSERT INTO flyway_schema_history, который регистрирует применение вашей прямой миграции V2_1__add_company_departments.sql со следующими параметрами: порядковый номер installed_rank = 2, контрольная сумма хэша checksum = 148920195, время выполнения execution_time = 45 мс, статус success = TRUE.
Составьте протокол регрессионного теста, подтверждающий обратную совместимость старого клиентского модуля добавления сотрудников (модуль v1.0, который отправляет только full_name, department и salary, ничего не зная о dept_id).
Опишите тестовый запрос и ожидаемый результат работы СУБД: