Логотип коледжу
Оптико-механічний фаховий коледж

Практична робота №14. Версіонування схем і міграції

Мета

Навчитися фіксувати зміни схеми як послідовність міграцій: розробляти, застосовувати та документувати їх.

Підготовка

Перед виконанням опрацюйте пов'язану лекцію:

Завдання

  1. Сформуйте початковий стан схеми як міграцію V1__init.sql (усі таблиці з практичної №8).
  2. Створіть міграцію V2__add_teacher_id.sql, що додає обов'язковий стовпець teacher_id до таблиці courses із відповідним зовнішнім ключем. Врахуйте наявні дані: оберіть значення за замовчуванням або порядок кроків.
  3. Створіть міграцію V3__drop_status.sql, що видаляє непотрібний стовпець або змінює обмеження, і покажіть зворотний крок.
  4. Застосуйте міграції послідовно на чистій базі та зафіксуйте, які зміни відбулися після кожної версії.
  5. Продемонструйте, як розпізнається повторне застосування міграції (пропуск уже виконаних версій).
  6. Опишіть сценарій зміни, яку неможливо виконати як одну атомарну міграцію, і розбийте її на кроки.

Вимоги до результату

  • Папка з файлами міграцій V1, V2, V3 (у стилі Flyway або Liquibase).
  • Журнал застосування міграцій із результатами.
  • Опис зворотних кроків для кожної міграції.
  • Приклад неможливої одноетапної міграції та її розбиття.

Питання для захисту

  • Чому міграції зберігають у репозиторії разом із кодом?
  • Що таке зворотна міграція і коли вона потрібна?
  • Як міграції допомагають узгодити схеми у різних командах?
  • Чому зміну NOT NULL на таблиці з даними складно зробити одним кроком?

Пов'язані лекції

Ресурси

Здати роботу