Я разрабатываю управляемый данными веб-сайт, и довольно большая логика программирования находится в хранимых процедурах базы данных и функциях базы данных. Я изменил сохраненный proc/functions довольно много, чтобы исправить ошибки или добавить новую функциональность. Данные (таблицы) остались главным образом нетронутыми.
Проблема, которую я имею, отслеживает версии сохраненного proc/functions. В настоящее время я увеличиваю версию целой базы данных, когда я делаю ряд изменений. Поскольку данные огромны (10 Гбит), я получаю проблемы, имеющие необходимость выполнять версию разработки и версии выпуска баз данных параллельно.
Я хочу поместить весь сохраненный procs и функции в одной базе данных и сохранить данные в одной базе данных, так, чтобы я мог лучше управлять изменениями.
Я уверен, что другие встретились бы подобный, предлагают и запрашивают предложения о том, как лучше всего обработать эту ситуацию.
Вы можете редактировать только дампы схемы. В сочетании с расширением keword системы управления версиями (как предлагает Rawheiser) вы просто смотрите, какая версия у вас есть в базе данных, генерируете различие и применяете его.
Кроме того, существует несколько отличных инструментов для сравнения баз данных и их схем, создания сценариев DDL и т. Д.: SQL Workbench, Power Architect, DDLUtils и Redgate SQL Compare, и это лишь некоторые из них. SQL Compare, вероятно, будет лучше всего работать с SQL Server, хотя все остальные являются FOSS и обеспечивают более высокую рентабельность инвестиций (с точки зрения времени, потраченного на обучение, и того, что вы можете с ними делать), поскольку они не зависят от платформы и СУБД.
Наконец, я должен сказать ... Я понимаю, что немедленные результаты, которые вы получаете с логикой в БД, заманчивы, но если вы вышли за рамки нескольких процедур в базе данных, вы устанавливаете свой Самостоятельно подготовиться к довольно большой боли, просеивая то, что легко превращается в спагетти-код, и привязав ваше приложение к одному поставщику базы данных. У вас могут быть свои причины, но я был там, и мне это не очень понравилось. Логика может прекрасно жить на другом уровне.
Я бы также порекомендовал использовать расширение ключевых слов в системе управления версиями в ваших хранимых процедурах ($ Version: $)
Таким образом, вы можете просматривать, grep, искать системные комментарии и т. версия, которая у вас есть в развернутой базе данных.
Для контроля исходных текстов у вас есть несколько вариантов:
Использовать проект базы данных Visual Studio Database.
Использовать встроенную поддержку SQL Server 2005 для контроля исходных текстов
Использовать сторонний инструмент, такой как SQL Compare
IMO Вариант 1. является предпочтительным.