Какой смысл миграций базы данных 'вниз'?

Поскольку все базы данных должны быть, источник для нашего является имеющим версию с помощью управления исходным кодом. База данных обновлена с помощью ряда сценариев SQL, сгенерированных инструментом сравнения Красного Логического элемента, который является по существу тем же как миграция в многочисленных платформах миграции базы данных, которые, кажется, недавно возникли.

Но какой смысл 'вниз' миграций в этих платформах? Часто код для миграция чрезвычайно сложна (обычно сложная миграция данных, поскольку функции развиваются), и я изо всех сил пытаюсь видеть цель необходимости записать все это наоборот для 'вниз' одного. Это - конечно, что-то, в чем я никогда не чувствовал потребность. Я пропускаю что-то здесь...?

5
задан Greg Beech 8 January 2010 в 00:05
поделиться

4 ответа

Похоже, что уместный вопрос здесь:

  • Почему в ответ на сценарий когда-либо был предпочтительным для полной базы данных, восстановленного от резервной копии, сделанной непосредственно перед обновлением?

Я могу подумать Из нескольких причин:

  1. База данных очень велика - сказать несколько сотен ГБ - и ваша компания не может позволить себе время простоя и / или административных расходов, которые будут участвовать в полной восстановлении.

  2. Была введена ошибка, которая не была обнаружена до недели или двух в производство. Если вы никогда не испытывали этого раньше, вам повезло. Как только у вас есть транзакции недели в новой базе данных, вы можете забыть просто восстанавливать от резервной копии.

  3. Ошибка не была обнаружена до месяцев в релиз. Другими словами, вы даже не участвуете резервного копирования, и вы официально в режиме контроля на ущербе / в результате аварийного восстановления. Я никогда не испытывал этого, но я слышал истории. Это страшная мысль - как вы отменяете весь ущерб, который был сделан? В этом случае ваша понижение не может быть идеальным, но все равно может быть лучше, чем альтернатива.

  4. Напротив, возможно, изменения базы данных были тривиальными - добавляя несколько строк здесь, там несколько триггеров. В этом случае накапливается в ответ на сценарию меньше времени, чем восстановление. Возможно, что некоторые вещи, которые заняли часы, чтобы обновить - такие как создание новых индексов или добавления новых столбцов - могут заниматься только секундами для понижения (падение).

  5. Вы развертываете на сайты клиентов. Некоторые из них могут не иметь резервных копий вообще (да, это жалко, но ничего вы не можете сделать с этим). Если один из них нужен откат, это ваш единственный вариант.

Могут быть другие причины иметь сценарии понижения понижению - это только что у меня на вершине головы.

9
ответ дан 18 December 2019 в 10:44
поделиться

Customer: "Нам не нравится новая версия и мы хотим вернуться к старой версии"

.
6
ответ дан 18 December 2019 в 10:44
поделиться
  1. Rollbacks. Вы все втягиваете в производство, и оно взлетает вверх - миграция вниз является хорошей защитой для отката.
  2. Или вы разрабатываете с несколькими ветками кода - вы можете переключаться между версиями к содержимому вашего сердца.
1
ответ дан 18 December 2019 в 10:44
поделиться

Если вы обновляете, и впоследствии в вашу базу данных добавляются данные, которые вы хотите сохранить, сценарий отката (если он разработан как таковой) должен добиться этого, тогда как если вы просто восстанавливаете резервную копию вы потеряете.

Но вы можете обойти описанное выше, восстановив резервную копию и используя SQL Data Compare для копирования дополнительных данных.

0
ответ дан 18 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: