Я попробовал следующее для развертывания на рабочем сервере, используя NAnt для обработки логики:
1) Проверьте папку с последней версией сборки на наличие номера редакции.
Если доступна более новая версия:
2) Получить файл со скомпилированными сценариями веб-сайта и базы данных (см. Ниже).
3) Перевести сайт в автономный режим (добавить app_offline.htm).
4) Применение сценариев базы данных (см. Ниже).
5) Вывести сайт в интернет (удалить app_offline.htm).
Что касается развертывания изменений в схеме базы данных, меня вдохновили некоторые посты К. Скотта Аллена . Короткая версия этого:
1) Запишите каждое новое изменение в схему базы данных (таблицы, индексы, начальные данные) и сохраните каждое новое изменение в отдельных файлах (например, schema-001.0001.sql
, schema-001.0002.sql
и т. Д.). Храните эти файлы в отдельной папке, например, sql\schema
.
2) Сценарий разное. объекты (хранимая процедура, функции, триггеры и представления) в отдельных файлах в отдельных папках, например sql\procedures\uspGetProducts.sql
, sql\procedures\uspUpdateProduct.sql
, sql\functions\
, sql\triggers\
, sql\views\
3) При развертывании: a) Удалите все разное. объекты из части 2, б) применить изменения схемы из части 1, которые ранее не применялись, в) и, наконец, воссоздать все разное. объекты из части 2.
Эти сценарии могут быть развернуты автоматически, например, Скрипты Nant на производственном сервере.