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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Мітка: Скасовано
Скасування редагування № 34273501 користувача 91.109.134.58 (обговорення) Не є посиланням на визначення
Мітка: Скасування
Рядок 1: Рядок 1:
'''Міграція бази даних''' (також '''міграція схеми''') ({{lang-en|schema migration, database migration, database change management}}<ref>http://www.liquibase.org/ {{Нп|Liquibase|||}} Database Refactoring</ref><ref>http://flywaydb.org/ Flyway: The agile database migration framework for Java</ref><ref>https://www.dbinvent.com/rdbm/ Rumba: Schema migration tool for PostgreSQL</ref>)&nbsp;— це керування інкрементними, зворотніми змінами [[Схема бази даних|схеми]] [[Реляційна база даних|реляційної бази даних]]. Міграція схеми виконується над базою даних коли необхідно оновити, або повернути схему бази даних до якоїсь новішої чи старішої версії.
'''Міграція бази даних''' (також '''міграція схеми''') ({{lang-en|schema migration, database migration, database change management}}<ref>http://www.liquibase.org/ {{Нп|Liquibase|||}} Database Refactoring</ref><ref>http://flywaydb.org/ Flyway: The agile database migration framework for Java</ref>)&nbsp;— це керування інкрементними, зворотніми змінами [[Схема бази даних|схеми]] [[Реляційна база даних|реляційної бази даних]]. Міграція схеми виконується над базою даних коли необхідно оновити, або повернути схему бази даних до якоїсь новішої чи старішої версії.


Міграції виконуються програмно за допомогою інструменту міграцій ({{lang-en|schema migration tool}}). При виклику інструменту міграції з вказуванням бажаної версії схеми, інструмент автоматично застосовує або відкочує міграції в правильній послідовності аж поки не приведе базу даних до бажаного стану.
Міграції виконуються програмно за допомогою інструменту міграцій ({{lang-en|schema migration tool}}). При виклику інструменту міграції з вказуванням бажаної версії схеми, інструмент автоматично застосовує або відкочує міграції в правильній послідовності аж поки не приведе базу даних до бажаного стану.

Версія за 15:24, 7 січня 2022

Міграція бази даних (також міграція схеми) (англ. schema migration, database migration, database change management[1][2]) — це керування інкрементними, зворотніми змінами схеми реляційної бази даних. Міграція схеми виконується над базою даних коли необхідно оновити, або повернути схему бази даних до якоїсь новішої чи старішої версії.

Міграції виконуються програмно за допомогою інструменту міграцій (англ. schema migration tool). При виклику інструменту міграції з вказуванням бажаної версії схеми, інструмент автоматично застосовує або відкочує міграції в правильній послідовності аж поки не приведе базу даних до бажаного стану.

Більшість інструментів міграції стараються мінімізувати вплив змін схеми на наявні дані всередині бази. Проте, загалом збереження даних не гарантується, бо зміни схеми такі як видалення колонки таблиці можуть знищувати дані (всі значення які зберігались у видаленій колонці). Натомість, ці інструменти стараються зберегти семантику даних або реорганізувати наявні дані у відповідність з новими вимогами. А так як семантику даних зазвичай неможливо зберегти формально, налаштування інструментів зазвичай ручне.

Ризики та переваги

Міграція схеми дозволяє виправляти помилки та адаптувати дані до змін вимог. Вона є важливою частиною еволюції програмного забезпечення, особливо в гнучкій розробці.

Застосування міграції схеми до бази даних в продакшні — це завжди ризик. Розробницька і тестові бази даних зазвичай менші і охайніші. Дані в них зрозуміліші, і навіть якщо все поламається їх об'єм достатньо малий для того щоб людина могла опрацювати. Бази даних в продакшні зазвичай величезні, старі і повні несподіванок. Несподіванки можуть з'являтись з багатьох причин:

  • Пошкоджені дані які були записані старими версіями ПЗ і не були правильно очищені
  • Неявні залежності в даних про які всі забули
  • Люди які вносять зміни в базу напряму без використання призначених для цього інструментів (міграцій)
  • Помилки в інструментах міграції схеми
  • Помилки в припущеннях щодо того як дані повинні мігрувати

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


Інструменти

Багато веб-фреймворків мають вбудовану підтримку міграцій, наприклад Yii[3], Django[4]

Примітки

Посилання