Міграція бази даних (також міграція схеми) (англ. schema migration, database migration, database change management) — це керування інкрементними, зворотніми змінами схеми реляційної бази даних. Міграція схеми виконується над базою даних коли необхідно оновити, або повернути схему бази даних до якоїсь новішої чи старішої версії.
Міграції виконуються програмно за допомогою інструменту міграцій (англ. schema migration tool). При виклику інструменту міграції з вказуванням бажаної версії схеми, інструмент автоматично застосовує або відкочує міграції в правильній послідовності аж поки не приведе базу даних до бажаного стану.
Більшість інструментів міграції стараються мінімізувати вплив змін схеми на наявні дані всередині бази. Проте, загалом збереження даних не гарантується, бо зміни схеми такі як видалення колонки таблиці можуть знищувати дані (всі значення які зберігались у видаленій колонці). Натомість, ці інструменти стараються зберегти семантику даних або реорганізувати наявні дані у відповідність з новими вимогами. А так як семантику даних зазвичай неможливо зберегти формально, налаштування інструментів зазвичай ручне.
Ризики та переваги
Міграція схеми дозволяє виправляти помилки та адаптувати дані до змін вимог. Вона є важливою частиною еволюції програмного забезпечення, особливо в гнучкій розробці.
Застосування міграції схеми до бази даних в продакшні — це завжди ризик. Розробницька і тестові бази даних зазвичай менші і охайніші. Дані в них зрозуміліші, і навіть якщо все поламається їх об'єм достатньо малий для того щоб людина могла опрацювати. Бази даних в продакшні зазвичай величезні, старі і повні несподіванок. Несподіванки можуть з'являтись з багатьох причин:
- Пошкоджені дані які були записані старими версіями ПЗ і не були правильно очищені
- Неявні залежності в даних про які всі забули
- Люди які вносять зміни в базу напряму без використання призначених для цього інструментів (міграцій)
- Помилки в інструментах міграції схеми
- Помилки в припущеннях щодо того як дані повинні мігрувати
З цих причин міграції потребують багато дисципліни, ретельного тестування та здорову систему резервного копіювання.
Інструменти
- Flyway
- [en]
Багато вебфреймворків мають вбудовану підтримку міграцій, наприклад Yii, Django
Примітки
- http://www.liquibase.org/ [ 10 листопада 2017 у Wayback Machine.] [en] Database Refactoring
- http://flywaydb.org/ [ 16 листопада 2017 у Wayback Machine.] Flyway: The agile database migration framework for Java
- . Архів оригіналу за 13 листопада 2017. Процитовано 13 листопада 2017.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 30 червня 2017. Процитовано 13 листопада 2017.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title ()
Посилання
- Martin Fowler: Evolutionary Database Design [ 3 січня 2018 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Migraciya bazi danih takozh migraciya shemi angl schema migration database migration database change management ce keruvannya inkrementnimi zvorotnimi zminami shemi relyacijnoyi bazi danih Migraciya shemi vikonuyetsya nad bazoyu danih koli neobhidno onoviti abo povernuti shemu bazi danih do yakoyis novishoyi chi starishoyi versiyi Migraciyi vikonuyutsya programno za dopomogoyu instrumentu migracij angl schema migration tool Pri vikliku instrumentu migraciyi z vkazuvannyam bazhanoyi versiyi shemi instrument avtomatichno zastosovuye abo vidkochuye migraciyi v pravilnij poslidovnosti azh poki ne privede bazu danih do bazhanogo stanu Bilshist instrumentiv migraciyi starayutsya minimizuvati vpliv zmin shemi na nayavni dani vseredini bazi Prote zagalom zberezhennya danih ne garantuyetsya bo zmini shemi taki yak vidalennya kolonki tablici mozhut znishuvati dani vsi znachennya yaki zberigalis u vidalenij kolonci Natomist ci instrumenti starayutsya zberegti semantiku danih abo reorganizuvati nayavni dani u vidpovidnist z novimi vimogami A tak yak semantiku danih zazvichaj nemozhlivo zberegti formalno nalashtuvannya instrumentiv zazvichaj ruchne Riziki ta perevagiMigraciya shemi dozvolyaye vipravlyati pomilki ta adaptuvati dani do zmin vimog Vona ye vazhlivoyu chastinoyu evolyuciyi programnogo zabezpechennya osoblivo v gnuchkij rozrobci Zastosuvannya migraciyi shemi do bazi danih v prodakshni ce zavzhdi rizik Rozrobnicka i testovi bazi danih zazvichaj menshi i ohajnishi Dani v nih zrozumilishi i navit yaksho vse polamayetsya yih ob yem dostatno malij dlya togo shob lyudina mogla opracyuvati Bazi danih v prodakshni zazvichaj velichezni stari i povni nespodivanok Nespodivanki mozhut z yavlyatis z bagatoh prichin Poshkodzheni dani yaki buli zapisani starimi versiyami PZ i ne buli pravilno ochisheni Neyavni zalezhnosti v danih pro yaki vsi zabuli Lyudi yaki vnosyat zmini v bazu napryamu bez vikoristannya priznachenih dlya cogo instrumentiv migracij Pomilki v instrumentah migraciyi shemi Pomilki v pripushennyah shodo togo yak dani povinni migruvati Z cih prichin migraciyi potrebuyut bagato disciplini retelnogo testuvannya ta zdorovu sistemu rezervnogo kopiyuvannya InstrumentiFlyway en Bagato vebfrejmvorkiv mayut vbudovanu pidtrimku migracij napriklad Yii DjangoPrimitkihttp www liquibase org 10 listopada 2017 u Wayback Machine en Database Refactoring http flywaydb org 16 listopada 2017 u Wayback Machine Flyway The agile database migration framework for Java Arhiv originalu za 13 listopada 2017 Procitovano 13 listopada 2017 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 30 chervnya 2017 Procitovano 13 listopada 2017 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya PosilannyaMartin Fowler Evolutionary Database Design 3 sichnya 2018 u Wayback Machine