Сценарий отката проекта базы данных Visual Studio - PullRequest
10 голосов
/ 01 марта 2011

Я использую проект Database в visual studio 2010, чтобы сгенерировать скрипт для развертывания моей базы данных (и его изменений). Это прекрасно работает.

Есть ли способ заставить проект базы данных Visual Studio генерировать сценарий отката, а также сценарий развертывания.

Я не ищу откат транзакции при развертывании; но, скажем, я развернул его, и у моей хранимой процедуры есть пропущенная проблема производительности, которая возникает через неделю, которая требует отката к предыдущей версии базы данных.

Существует ли способ создания сценария отката во время сборки / развертывания, который отменяет любые изменения, внесенные сценарием развертывания.

РЕДАКТИРОВАТЬ: Если мы игнорируем, что я использую проект базы данных: Каков хороший способ создания пути обновления и понижения для сгенерированной базы данных?
Это поколение должно быть частью автоматизированного процесса сборки.

Ответы [ 3 ]

6 голосов
/ 15 июня 2011

Создание сценария отката Во время сравнения схем с использованием VS2010, это так же просто, как поменять имена БД, указанные в источнике и цели.

Таким образом VS2010 создаст сценарий отката, который будет содержать операторы drop для вашего сохраненного процесса.

0 голосов
/ 21 декабря 2011

Вы можете создать резервную копию базы данных перед выпуском, а затем просто восстановить ее, если что-то пойдет не так. Очевидно, что вы также потеряете любые изменения данных (сделанные как часть выпуска или впоследствии) с момента создания резервной копии.

Еще одна идея, которая у меня возникла, - создать снимок перед выпуском. Операция по созданию снимка очень легкая. Я не уверен, что вы захотите сохранить снимок в течение недели, но если выпуск пошёл не так, как я думаю, восстановление из снимка будет быстрее, чем из полной резервной копии. Мне было бы интересно услышать любые комментарии людей к этой идее.

0 голосов
/ 04 апреля 2011

Я не видел ничего подобного.

Я думаю, вам нужно пересмотреть этот подход, так как вам все равно нужно будет исправить хранимый процесс в вашем проекте базы данных, иначе вы просто повторно развернете «плохую» версию при следующем развертывании. (Я уверен, что вы уже знаете об этом, но иногда это не помогает указать на очевидное!)

Если вам необходимо восстановить старую версию sproc на сервере, я бы подумал, что проще всего было бы получить предыдущую версию из системы контроля версий и вручную развернуть ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...