Какие существуют методы для управления изменениями БД? [закрыто]


9

Недавно я начал работать с контролем версий в своей веб-разработке с использованием Subversion. Это прекрасно работает для управления файлами, которые я разрабатываю, но ничего не делает для изменений, которые мне иногда нужно внести в базы данных. Насколько мне известно, на сервере, на котором я работаю, нет никаких систем управления БД, и я, вероятно, не смог бы заставить их установить что-либо. Какие есть варианты для управления БД в такой среде?



1
@Jeff O Эта тема, которую вы предложили, имеет дело больше с версионным контентом, а не с версионностью структуры базы данных, которую я бы хотел отслеживать. Спасибо за предложение!
Кеннет

Ответы:


9

К. Скотт Аллен написал несколько отличных постов в блоге об этом несколько лет назад. Они могут быть «старыми» в интернет-терминах, но его решение все еще очень приятно.

  1. Три правила работы с базой данных
  2. Базовая линия
  3. Изменить сценарии
  4. Представления, хранимые процедуры и т.п.
  5. Ветвление и слияние

3

Среды миграции - это библиотеки кода, которые предоставляют простой API для автоматизации изменений в БД с некоторым механизмом управления версиями БД.

Я использую Migrator.Net для некоторых проектов. Я создаю класс для каждого набора изменений, и инфраструктура предоставляет простой способ выполнения изменений в БД. Я также могу запускать изменения вперед и назад, при условии, что я создаю логику для понижения и обновления.

Затем мы управляем кодом миграции в нашей VCS, как и любой другой код.


1

Ночные резервные копии, конечно (по крайней мере). Потому что вам важна не только структура БД.

У вас есть несколько вариантов:

1) Держите ваши сценарии изменения в элементе управления источником.

2) После каждого изменения БД генерируйте сценарии БД .. и сохраняйте их в системе управления версиями одновременно с резервной копией БД. Таким образом, вы можете сравнить файл Generated Script.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.