Міграція бази даних: відмінності між версіями

м
оформлення
м (оформлення)
'''Міграція бази даних''' (також '''міграція схеми''') ({{lang-en|schema migration, database migration, database change management}}<ref>http://www.liquibase.org/ [//en.wikipedia.org/wiki/Liquibase Liquibase] Database Refactoring</ref><ref>http://flywaydb.org/ Flyway: The agile database migration framework for Java</ref>) -&nbsp;— це керування інкрементними, зворотніми змінами [[Схема бази даних|схеми]] [[Реляційна база даних|реляційної бази даних]] . Міграція схеми виконується над базою даних коли необхідно оновити, або повернути схему бази даних до якоїсь новішої чи старішої версії.
 
Міграції виконуються програмно за допомогою інструменту міграцій ({{lang-en|schema migration tool}}). При виклику інструменту міграції з вказуванням бажаної версії схеми, інструмент автоматично застосовує або відкочує міграції в правильній послідовності аж поки не приведе базу даних до бажаного стану.
 
Більшість інструментів міграції стараються мінімізувати вплив змін схеми на існуючінаявні дані всередині бази. Проте, загалом збереження даних не гарантується, бо зміни схеми такі як видалення колонки таблиці можуть знищувати дані (всі значення які зберігались у видаленій колонці). Натомість, ці інструменти стараються зберегти семантику даних або реорганізувати існуючінаявні дані у відповідність з новими вимогами. А так як семантику даних зазвичай неможливо зберегти формально, налаштування інструментів зазвичай ручне.
 
== Ризики та переваги ==
Міграція схеми дозволяє виправляти помилки та адаптувати дані до змін вимог. Вона є важливою частиною еволюції програмного забезпечення, особливо в [[Гнучка розробка програмного забезпечення|гнучкій розробці]].
 
Застосування міграції схеми до бази даних в продакшні -&nbsp;— це завжди ризик. Розробницька і тестові бази даних зазвичай менші і охайніші. Дані в них зрозуміліші, і навіть якщо все поламається їх об'єм достатньо малий для того щоб людина могла опрацювати. Бази даних в продакшні зазвичай величезні, старі і повні несподіванок. Несподіванки можуть з'являтись з багатьох причин:
* Пошкоджені дані які були записані старими версіями ПЗ і не були правильно очищені
* Неявні залежності в даних про які всі забули
Багато веб-фреймворків мають вбудовану підтримку міграцій, наприклад [[Yii]]<ref>http://www.yiiframework.com/doc/guide/1.1/uk/database.migration</ref>, [[Django]]<ref>https://docs.djangoproject.com/en/1.11/topics/migrations/</ref>
 
== ЗноскиПримітки ==
{{Reflistreflist}}
 
== Посилання ==