Как обновить схему рабочей базы данных в решении VWD без перезаписи данных?

У меня есть веб-сайт, управляемый данными (файл mdf с автоматическим прикреплением SQL Express), который был создан как локальный сайт в Visual Web Developer 2010 Express, а затем развернут на рабочем сервере. Сайт хранится локально и регистрируется в SVN для контроля версий. Обновления приложения вносятся в локальную копию (с помощью встроенного веб-сервера разработки), а затем копируются на рабочий сервер с помощью функции копирования веб-сайта.

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

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

Итак, мой вопрос: Как лучше всего обрабатывать эти обновления схемы базы данных в VWD 2010 Express?

Поиск в Stack Overflow и Google оказался безрезультатным, поэтому любая помощь приветствуется!

С уважением,
JE


person Jens Ehrich    schedule 23.03.2011    source источник


Ответы (1)


Я полагаю, вы имеете в виду так называемые пользовательские экземпляры SQL Express. Из этой отличной статьи по SQL. Express User Instances, инструмент под названием SSEUtil можно использовать для выполнения команд в отношении локального экземпляра пользователя. Обратите внимание, что я сказал местный.

К сожалению, это не прямой ответ на ваш вопрос о том, как лучше всего обрабатывать обновления схемы в VWD 2010. Причина этого в том, что нет никакого способа сделать это. Экземпляры пользователей являются локальными (соединения используют именованные каналы), и вам нужно будет выполнять обновления в производственной среде. Использование SSEUtil лучше, чем установка VWD 2010 на сервер или написание собственного кода для выполнения обновлений вручную.

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

Одно предложение: я бы отошел от пользовательского экземпляра SQL Express, по крайней мере, к обычному экземпляру SQL Express, если вы можете.

person JasonCoder    schedule 23.03.2011
comment
Спасибо ДжейсонКодер! Я боялся, что это будет ответ. Я не знал о SSEUtil, и я попробую, когда у меня будет время. Я уже видел упомянутый вами продукт, но на этот раз он не входит в бюджет (для всех, кто заинтересован, я нашел другой аналогичный продукт под названием xSQL, у которого есть бесплатная облегченная версия). - person Jens Ehrich; 24.03.2011
comment
Продолжение... Да, я использую пользовательские экземпляры. Я, вероятно, последую вашему совету и перенесу все на стандартный экземпляр SQL Express. Есть ли рекомендации по созданию/использованию сценариев обновления с VWD (пользовательские или стандартные экземпляры), которые вы можете порекомендовать? - person Jens Ehrich; 24.03.2011
comment
Поэтому независимо от того, как вы создаете сценарии обновления, убедитесь, что вы тестируете обновления на версии UAT/Test вашей производственной базы данных. Таким образом, когда вы фактически развертываете обновления схемы, вы не тестируете обновления в своей производственной базе данных. Удачи! - person JasonCoder; 24.03.2011