VS2017 SSIS Version Control для Subversion и / или BitBucket - PullRequest
0 голосов
/ 08 июня 2018

Вопрос: Можно ли управлять версиями проекта / пакета служб SSIS?Если да, какой инструмент: SVN / BitBucket, VS2017 или SQL Server?

Контекст: Мой работодатель в настоящее время использует Subversion (SVN), но переходит на BitBucket.Из того, что я могу сказать, SVN не управляет версией проекта / пакета SSIS.Теперь в решении SSIS в VS2017 я могу изменить версию проекта и установить номера Major, Minor и Build (я установил его на 1.0.0).Однако, когда я строю решение, значения сбрасываются на 0 (т. Е. 0.0.0).Кроме того, когда я развертываю проект в каталоге служб Integration Services и запрашиваю таблицу (см. Запрос ниже), Major, Minor и Build устанавливаются на 1.0.125.Я не понимаю, почему проект не отражает эти значения.

Таким образом, кажется, что невозможно отслеживать, кроме как развернуть;получить информацию о версии;включить его в комментарии при регистрации в SVN.Нет?

SELECT *
FROM SSISDB.internal.packages

1 Ответ

0 голосов
/ 08 июня 2018

Понятия не имею, о чем ты говоришь.Контроль версий - контроль версий.Есть некоторые вещи, которые вы можете сделать с SVN, которые вы не можете сделать с другими системами управления версиями, например, использование ... макроклавиш $author$ или что-то в этом роде, но оно все еще использует версию программного обеспечения.

Я создалpackage, Package2 и явно назначенные значения для VersionComments, VersionMajor, VersionMinor.VersionBuild - это число с автоинкрементом, основанное на количестве сохранений пакета.

package properties

Я развернул этот пакет в обоих хранилищах пакетов SQL Server (msdb), а затем развернул проект в каталоге служб интеграции (SSISDB).Затем я запустил следующий запрос для проверки данных.

SELECT
    S.name
,   S.description
,   S.vermajor
,   S.verminor
,   S.verbuild
,   S.vercomments
FROM
    msdb.dbo.sysssispackages AS S
WHERE
    S.name = 'Package2';

SELECT
    P.name
,   P.description
,   P.version_major
,   P.version_minor
,   P.version_build
,   P.version_comments
FROM
    SSISDB.catalog.packages AS P
WHERE
    P.name = 'Package2.dtsx';

Как видно из результатов, все версии VersionBuild / VersionComments / VersionMajor / VersionMinor (и описание) представлены как элементы первого уровня.

enter image description here

Это те же значения, которые записал мой пакет.

Комментарии показывают, что пакет обнаруживается в одном месте, SSISDB ине msdb.

Это относится к выбору дизайна модели развертывания пакета по сравнению с моделью развертывания проекта.

Развертывание пакета было единственным вариантом до SQL Server 2012. Развертывание пакета может перейти на SQL Server, и если это произойдет, оно будет найдено в базе данных msdb в таблице с именем, начинающимся сс syspackages (фактическое название варьируется между 2005, 2008 / r2).В противном случае они будут где-то в файловой системе.Развертывание пакетов по-прежнему доступно в текущем выпуске 2017 года.

Развертывание проекта было новым в 2012 году и стало вариантом по умолчанию.Он решает многие проблемы управления пакетами.Вместо этого проекты рассматриваются как единое целое, а не как N пакетов служб SSIS.Проекты «компилируются» в развертываемый модуль с расширением .ispac (zip-файл с манифестом).Затем файл .ispac развертывается в SSISDB, обычно через isdeploymentwizard.exe

. Инкрементное развертывание пакетов все еще использует модель развертывания проекта *, поэтому ваши пакетыбудут храниться в SSISDB.

Пользовательский интерфейс SSISDB предоставляет меню «Свойства» для проектов, в котором указаны имя, идентификатор, описание, версия проекта и дата развертывания.Поскольку это легко увидеть, я использовал для описания проекта значение $Revision или что-то подобное, чтобы сразу увидеть, был ли проект там, где я ожидал.

enter image description here

Это также может быть получено путем запроса базовых таблиц, таких как

SELECT
    F.name AS FolderName
,   F.description AS FolderDescription
,   PR.name AS ProjectName
,   P.description AS ProjectDescription
,   PR.project_format_version
,   PR.deployed_by_name
,   PR.last_deployed_time
,   PR.created_time
,   PR.validation_status
,   PR.last_validation_time
,   P.name AS PackageName
,   P.description AS PackageDescription
,   P.version_major
,   P.version_minor
,   P.version_build
,   P.version_comments
FROM
    catalog.projects AS PR
    INNER JOIN
        catalog.folders AS F
        ON F.folder_id = PR.folder_id
    INNER JOIN
        catalog.packages AS P
        ON P.project_id = PR.project_id;
  • Прикол, функция постепенного развертывания пакетов создаст проект для вас при развертываниив SSISDB.Таким образом, вы можете получить тонкости управления моделью развертывания проекта, оставив свой проект в модели развертывания пакета.
...