Как разделить логику программирования и данные в MS SQL Server 2005? - PullRequest
6 голосов
/ 03 марта 2010

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

У меня проблема с отслеживанием версий хранимых процедур / функций. В настоящее время я увеличиваю версию всей базы данных, когда делаю ряд изменений. Поскольку объем данных огромен (10 Гб), у меня возникают проблемы с параллельным запуском версий разработки и версий баз данных.

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

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

Ответы [ 3 ]

2 голосов
/ 03 марта 2010

Я бы также порекомендовал использовать расширение ключевых слов управления исходным кодом в ваших хранимых процедурах ($ Version: $)

Таким образом, вы можете просматривать, просматривать, искать syscomments и т. Д., Чтобы увидеть, какая у вас версия в развернутой базе данных..

1 голос
/ 07 марта 2010

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

Кроме того, есть несколько отличных инструментов для сравнения баз данных и их схем, создания сценариев DDL и т. Д.: SQL Workbench, Power Architect, DDLUtils и Redgate SQL Compare, и многие другие. SQL Compare, скорее всего, лучше всего работает с SQL Server, хотя все остальные являются FOSS и обеспечивают более высокий ROI (с точки зрения затрат времени на обучение и того, что вы можете с ними сделать), поскольку они независимы от платформ и RDBMS.

Наконец, я должен сказать ... Я понимаю, что непосредственные результаты, которые вы получаете с помощью логики в БД, заманчивы, но если вы вышли за пределы нескольких процедур в базе данных, вы устанавливаете Я беру на себя довольно много боли, отсеивая то, что легко превращается в спагетти-код, и привязывая ваше приложение к одному поставщику базы данных. У тебя могут быть свои причины, но я был там и мне не очень понравилось. Логика может очень хорошо жить в другом слое.

0 голосов
/ 03 марта 2010

Для управления источником у вас есть несколько вариантов:

  1. Использование проекта базы данных Visual Studio .

  2. Использование встроенной поддержки SQL Server 2005 для управления исходным кодом

  3. Используйте инструмент третьей части, такой как SQL Compare

ИМО Вариант 1. предпочтительнее.

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