Практична робота №14. Версіонування схем і міграції
Мета
Навчитися фіксувати зміни схеми як послідовність міграцій: розробляти, застосовувати та документувати їх.
Підготовка
Перед виконанням опрацюйте пов'язану лекцію:
Завдання
- Сформуйте початковий стан схеми як міграцію
V1__init.sql(усі таблиці з практичної №8). - Створіть міграцію
V2__add_teacher_id.sql, що додає обов'язковий стовпецьteacher_idдо таблиціcoursesіз відповідним зовнішнім ключем. Врахуйте наявні дані: оберіть значення за замовчуванням або порядок кроків. - Створіть міграцію
V3__drop_status.sql, що видаляє непотрібний стовпець або змінює обмеження, і покажіть зворотний крок. - Застосуйте міграції послідовно на чистій базі та зафіксуйте, які зміни відбулися після кожної версії.
- Продемонструйте, як розпізнається повторне застосування міграції (пропуск уже виконаних версій).
- Опишіть сценарій зміни, яку неможливо виконати як одну атомарну міграцію, і розбийте її на кроки.
Вимоги до результату
- Папка з файлами міграцій
V1,V2,V3(у стилі Flyway або Liquibase). - Журнал застосування міграцій із результатами.
- Опис зворотних кроків для кожної міграції.
- Приклад неможливої одноетапної міграції та її розбиття.
Питання для захисту
- Чому міграції зберігають у репозиторії разом із кодом?
- Що таке зворотна міграція і коли вона потрібна?
- Як міграції допомагають узгодити схеми у різних командах?
- Чому зміну
NOT NULLна таблиці з даними складно зробити одним кроком?
