Как разделить логику программирования и данные в SQL Server MS 2005?

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

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

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

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

6
задан Gursharn Singh 3 March 2010 в 10:10
поделиться

3 ответа

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

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

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

1
ответ дан 17 December 2019 в 18:14
поделиться

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

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

2
ответ дан 17 December 2019 в 18:14
поделиться

Для контроля исходных текстов у вас есть несколько вариантов:

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

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

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

IMO Вариант 1. является предпочтительным.

0
ответ дан 17 December 2019 в 18:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: