Полный преподавательский сценарий с прямой речью для регламентов 80 минут (основной) и 60 минут (сокращенный).
ALTER TABLE orders ADD COLUMN promo_code VARCHAR(20) NOT NULL;.V{Версия}__{Описание}.sql — версионированная миграция наката (например, V1__baseline.sql, V2__add_index.sql). Обратите внимание: между версией и описанием стоят СТРОГО два символа подчеркивания!U{Версия}__{Описание}.sql — Undo-скрипт отката назад.R__{Описание}.sql — повторяемая миграция для представлений (VIEW) и функций.flyway_schema_history.»
checksum — это контрольная сумма файла миграции. Если разработчик применил миграцию V2 на тестовом сервере, а потом тихонько залез в файл и исправил там строчку, контрольная сумма изменится. При следующем запуске Flyway выдаст фатальную ошибку: Migration checksum mismatch и остановит деплой!V2 — вы не трогаете V2, а создаете новую миграцию V3__fix_column.sql.migrations лежит файл V1__baseline_tables.sql. Мы запускаем мигратор. Смотрим в консоль СУБД:SELECT installed_rank, version, description, checksum, success FROM flyway_schema_history;V2__add_loyalty_system.sql. Запускаем накат. Версия 2 успешно применилась. А теперь смоделируем аварийную ситуацию: релиз признан неудачным, нам нужно вернуть схему назад. Мы применяем зеркальный скрипт U2__drop_loyalty_system.sql.zanyatie.html.V2 по добавлению уникального штрихкода EAN-13 в таблицу Товары и регрессионный тест старых форм складского поиска.V3 по выделению справочника источников бронирования и внешнего ключа в Бронированиях, проверка стабильности регистрации гостей.V4 по выносу паспортов из таблицы клиентов с миграцией данных и написанием честного Undo-скрипта.V5 по добавлению составного индекса и анализ регрессионного времени формирования ведомостей.ALTER TABLE goods ADD COLUMN barcode_ean13 VARCHAR(13) NOT NULL UNIQUE; без значения DEFAULT. Если в таблице уже лежат 5000 товаров, СУБД моментально упадет с ошибкой, потому что для старых записей значение не определено! Правильный путь: добавлять колонку либо с временным DEFAULT, либо делать поле NULLable, заполнять штрихкоды и только потом накладывать NOT NULL.Robert'); DROP TABLE Students; --. Это классическое напоминание: любые манипуляции со схемой и данными должны быть изолированными, контролируемыми и защищенными.domashnee_zadanie.html. Срок сдачи — до следующего занятия. Всем спасибо за работу, пара окончена!»