Хороший способ внести изменения в производственную базу данных / исходный код - PullRequest
0 голосов
/ 14 января 2011

Мне интересно узнать, что было бы хорошим способом внести изменения в производственную базу данных и исходный код в веб-приложении (ASP.NET, SQL Server 2008).

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

На данный момент мы делаем этовечером измените базу данных непосредственно из Management Studio на производственном сервере, а затем просто перезапишите существующий код asp.net (copy / past).

Ответы [ 2 ]

1 голос
/ 15 января 2011

Зависит от того, является ли это первым развертыванием нового приложения или обновлением приложения.

Для небольших обновлений запишите все изменения в вашей базе данных в виде сценариев sql. Вы должны строго следить за тем, чтобы все изменения в разработке применялись как сценарии SQL. Поместите скрипты в систему контроля версий. Разверните обновление, запустив сценарии на производстве.

Для новых приложений у вас может быть тысячи скриптов. Вы не можете запустить их по отдельности. Консолидация их в основной сценарий занимает слишком много времени. (хотя вы все еще хотите проверить КАЖДЫЙ сценарий в системе контроля версий). В этом случае вы достигаете вехи в развитии, затем ЗАМОРАЖИВАЕТЕ базу данных разработки и объявляете ее базовой. Используйте инструменты базы данных для генерации основных сценариев. Разверните производство, запустив этот сценарий. Вручную создайте сценарии данных для таблиц поиска, чтобы отделить их от данных нежелательной разработки.

Избегайте копирования базы данных. Избегайте изменения вручную через графический интерфейс. Сценарии - это путь. Как вы собираете сценарии, объединяетесь в мастер-сценарии, генерируете сценарии и т. Д. - это другая история.

1 голос
/ 14 января 2011

Вы говорите об управлении релизами. То, о чем вы спрашиваете, - это большая тема с множеством разных ответов. Лучшее решение для вас - это не то, что мы можем вам сказать. Есть компромиссы, чтобы рассмотреть.

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

Зрелый процесс очень хорош, но если у вас нет ресурсов, это невозможно.

Чтобы перейти к сути, я не думаю, что на ваш вопрос можно ответить полностью здесь. Я бы посоветовал начать исследования «управление изменениями», «управление выпусками», «управление жизненным циклом приложений» и «жизненный цикл разработки приложений». У меня будет несколько хороших стартовых ссылок для вас через минуту.

Однако, просто предупреждая, вы задаете вопрос, который откроет ваши глаза и ваш мир способами, которые вы, вероятно, не рассмотрели. Существуют такие вещи, как автоматические сборки, инструменты для вас (дорогие, бесплатные и все что между ними)

http://en.wikipedia.org/wiki/Release_management

http://en.wikipedia.org/wiki/Application_lifecycle_management

Несколько простых опций для ПРОСТО, о чем вы спрашиваете, можно найти здесь: http://msdn.microsoft.com/en-us/library/7hd4c0x3(VS.80).aspx

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

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