бесплатная утилита для создания сценариев объектов БД в ms sql

StackOverflow https://stackoverflow.com/questions/833148

  •  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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top