бесплатная утилита для создания сценариев объектов БД в ms sql
-
08-07-2019 - |
Вопрос
Я пытаюсь реализовать систему контроля версий базы данных.
нужный мне инструмент должен создать отдельный файл для каждого объекта в базе данных, желательно разложенный по папкам, например
хранимые процедуры функции просмотров столы
и было бы здорово иметь возможность также выгружать результаты определенных запросов, чтобы отслеживать изменения данных в нескольких таблицах конфигурации...
Интересно, существует ли уже инструмент, который может справиться с такими вещами...
--
просто чтобы прояснить некоторые вещи...
Я уже использую sql delta для обработки сценариев обновления...
Мне бы хотелось иметь сценарии БД для использования с Subversion, чтобы я мог отслеживать, какие объекты менялись при каждом коммите, без необходимости изучать сценарии обновления...
Я разрабатываю хороший vb-скрипт с объектами распределенного управления SQL (SQL-DMO), расскажу, как все происходит...
Что хорошо в наличии собственного решения, так это то, что я также могу включать результаты запросов или выполнения хранимых процедур, чтобы отслеживать изменения в определенных таблицах, конфигурации сервера, рост базы данных, ну и все, что я могу сбросить в текстовый файл. ...
Нет правильного решения
Другие советы
я использую ScriptDB именно для этой цели.Единственное, что мне пришлось изменить, это убрать дату написания скриптов в сгенерированных файлах.В противном случае файлы всегда помечаются как измененные в Subversion.
Вот партия, которую я использую.svnclient — инструмент из Codeplex svncompletesync.codeplex.com, чтобы вернуть все файлы из папки в Subversion.:
svn checkout "http://svn/myproject" D:\Projekte\db_svn\myproject
ScriptDB "D:\temp\scriptdb" myserver mydb mylogin mypwd
del "D:\Projekte\db_svn\myproject\Schema Objects\\*.sql" /q /s
xcopy "D:\temp\scriptdb\myserver\mydb\Schema Objects\\*.sql" "D:\Projekte\db_svn\myproject\Schema Objects" /e /y /i
svnclient "D:\Projekte\db_svn\myproject" -m "commit durch svncompletesync"
Если я правильно вас понял, вам нужны две вещи:сначала вам нужно сгенерировать сценарии из метаданных базы данных (таблиц, представлений, хранимых процедур и т. д.), и как только это будет сделано, вам нужно будет использовать какую-то согласованную методологию для управления версиями сценариев.
Если у вас уже есть метаданные и данные в базе данных, я не понимаю, что помешало бы вам с помощью SQL Management Studio (или SQL Enterprise Manager), чтобы генерировать сценарии из объектов базы данных:видеть Как:Создать сценарий (SQL Server Management Studio).Это должно работать для SQL Server 2000, 2005 и т. д.Имейте в виду, что вы можете настроить параметры генерации скриптов, например.вместо одного огромного скрипта вы можете использовать отдельные скрипты для каждого объекта.Возможно, вам придется написать несколько сценариев для заполнения таблиц данными (я не уверен, поддерживает ли мастер извлечение данных).
Как только вы получите сценарии, вам, вероятно, придется вручную распределить их по определенным папкам, и когда это будет сделано, вы должны быть готовы проверить их в системе контроля версий.С этого момента вам необходимо определить методологию последующих установок, обновлений и исправлений базы данных.Это довольно сложная задача, решение которой заняло бы больше времени, чем простой ответ.Если вас интересуют возможные варианты, загляните в мой Обновлен установщик базы данных сообщение, в котором упоминается ряд подходов и ссылки на несколько статей, посвященных управление версиями базы данных (извините за саморекламу, но не хочу повторять одну и ту же информацию).
Большинство инструментов в этой области не бесплатны, но существует проект с открытым исходным кодом. ScriptDB, который может удовлетворить ваши потребности в создании сценариев.
Это не решит проблему того, как применять скрипты к базе данных в правильном порядке — если вы не хотите платить, возможно, вам придется импровизировать самостоятельно.
Вы можете попробовать Уизардби, что не совсем то, о чем вы просите, но все же может помочь вам в управлении изменениями базы данных.Он может провести реверс-инжиниринг вашей схемы базы данных (ну, ее подмножества), а затем записать так называемые «миграции» в специальном, независимом от платформы DSL:
version 20090331140131:
oxite_FileResource:
FileResourceID type => PK, primary-key => true
SiteID type => Guid, nullable => false
FileResourceName type => LongName
CreatorUserID references => oxite_User
Data type => Binary
ContentType type => AnsiString, length => 25, nullable => false
Path type => String, length => 1000, nullable => false
State type => Byte, nullable => false
CreatedDate type => DateTime, nullable => false
ModifiedDate type => DateTime, nullable => false
oxite_UserFileResourceRelationship:
UserID references => oxite_User
FileResourceID references => oxite_FileResource:
add index unique => true
index "" columns => [UserID, FileResourceID], unique => true, clustered => true