Загрузка пакетов в базу данных при помощи WorkspaceConsole
Glossary Item Box
Общие сведения
Загрузка пакетов из файловой системы в базу данных приложения выполняется при переносе изменений между рабочими средами, не связанными общим SVN-хранилищем (например, средой разработки и тестовой средой). Обычно пакеты выгружаются со среды разработки, а загружаются в тестовую и промышленную среды. Процесс выгрузки пакетов с помощью утилиты подробно описан в статьях "Выгрузка пакетов из базы данных при помощи WorkspaceConsole" и "Выгрузка пакетов из SVN при помощи WorkspaceConsole".
Для загрузки пакетов в базу данных необходимо запустить утилиту WorkspaceConsole со следующими значениями параметров (табл. 1):
Табл. 1. — Параметры WorkspaceConsole для загрузки пакетов в базу данных
Параметр | Значение | Описание |
---|---|---|
-operation | InstallFromRepository | Выполняет загрузку содержимого пакетов из архивов в базу данных. При необходимости выполняются привязанные SQL-скрипты, перегенерация исходных кодов, установка привязанных данных. Особенностью операции является то, что она работает только с измененными или новыми пакетами и их элементами. |
-packageName | [Имя пакета] | Имя пакета из указанной в параметре workspaceName конфигурации. Важно, что все пакеты, от которых зависит указанный пакет, также будут задействованы. Необязательный параметр. Необязательный параметр. Если он не указан, то будут задействованы все пакеты конфигурации. |
-workspaceName | [Название рабочего пространства] | Название рабочего пространства (конфигурации), в котором определены выгружаемые пакеты. По умолчанию все пользователи работают в рабочем пространстве Default. |
-sourcePath | [Путь к локальному каталогу] |
Путь к локальному каталогу в дисковой системе. В этом каталоге должны находиться заархивированные в формате *.gz пакеты, которые необходимо установить. |
-destinationPath | [Путь к локальному каталогу] |
Путь к локальному каталогу в дисковой системе. В этот каталог будут распакованы пакеты из каталога, определенного в параметре sourcePath. |
-skipConstraints | false | Опция пропуска действий по созданию внешних ключей в таблицах базы данных. Принимает значения: true, false. |
-skipValidateActions | true | Опция пропуска выполнения действий по проверке возможности создания индексов таблиц при обновлении структуры базы данных. Принимает значения: true, false. |
-regenerateSchemaSources | true | Указывает на необходимость перегенерации исходных кодов после сохранения пакетов в базе данных. Принимает значения: true, false. |
-updateDBStructure | true | Указывает на необходимость изменения структуры в базе данных после сохранения пакетов. Принимает значения: true, false. |
-updateSystemDBStructure | true | Указывает на необходимость изменения структуры в базе данных системных схем перед выполнением установки пакетов. Также создает все отсутствующие индексы в системных таблицах. Принимает значения: true, false. |
-installPackageSqlScript | true | Указывает на необходимость выполнения SQL-скриптов до и после сохранения пакетов. Принимает значения: true, false. |
-installPackageData | true | Указывает на необходимость установки привязанных к пакету данных после сохранения пакетов. Принимает значения: true, false. |
-continueIfError | true | Указывает на необходимость прервать или продолжить выполнение процесса установки при получении первой ошибки. Если значение параметра равно true, то процесс установки пройдет до конца, а пользователь получит список всех произошедших ошибок. Принимает значения: true, false. |
-logPath | [Путь к локальному каталогу] | Путь к папке, в которой должен находиться лог выполнения указанной операции. Название файла состоит из даты и времени запуска операции. |
-webApplicationPath | [Путь к локальному каталогу] |
Путь к каталогу на диске, в который установлено приложение Creatio. По этому пути из файла ConnectionStrings.config будет считана информация по соединению с базой данных. Если параметр не указан, то будет установлено соединение с базой данных, указанной в строке соединения в конфигурационном файле утилиты. Если указан — соединение будет установлено с базой данных, указанной в файле ConnectionStrings.config приложения Creatio. |
-configurationPath | [Путь к локальному каталогу] |
Путь к подкаталогу Terrasoft.Configuration в каталоге, в который установлено приложение. Например, C:\сreatio7.12.2\Terrasoft.WebApp\Terrasoft.Configuration. В этот каталог выгружаются исходные коды и ресурсы схем пользовательских пакетов в режиме разработки в файловой системе. |
-confRuntimeParentDirectory | [Путь к локальному каталогу] | Указывает путь к родительскому каталогу для директории conf (см. "Статический клиентский контент в файловой системе" и "Серверный контент в файловой системе"). Как правило директория conf расположена в каталоге Terrasoft.WebApp развернутого приложения. |
Сигнатура команды, которую необходимо выполнить в интерпретаторе команд (консоли) Windows для выполнения операции установки пакетов:
[Путь к WorkspaceConsole]\Terrasoft.Tools.WorkspaceConsole.exe -packageName=[Название пакета] -workspaceName=Default -operation=InstallFromRepository -sourcePath=[Путь к архивам пакетов] -destinationPath=[Путь распаковки пакетов] -skipConstraints=false -skipValidateActions=true -regenerateSchemaSources=true -updateDBStructure=true -updateSystemDBStructure=true -installPackageSqlScript=true -installPackageData=true -continueIfError=true -webApplicationPath=[Путь к каталогу приложения] -confRuntimeParentDirectory=[Путь к каталогу приложения\Terrasoft.WebApp] -logPath=[Путь к логам]
Для корректной работы приложения (для версий выше 7.11) после выполнения операции InstallFromRepository необходимо выполнить операцию BuildConfiguration.
Операция BuildConfiguration выполняет генерацию статического контента в файловую систему. Используемые параметры: -workspaceName, -destinationPath, -webApplicationPath, -logPath, -force. При значении true параметра -force выполняется генерация контента по всем схемам, а при значении false — только по измененным. Требует указания одного из параметров -webApplicationPath или -configurationPath (см. "Параметры утилиты WorkspaceConsole").
Поскольку изменения вносятся утилитой WorkspaceConsole напрямую в базу данных, то они не могут быть доступны для уже работающего приложения. Поэтому необходимо перезапустить приложение в IIS.
Пакеты, загруженные в приложение с помощью WorkspaceConsole, считаются предустановленными и не могут быть изменены (см. "Структура и состав пакетов").
Особенности загрузки пакетов при включенном режиме разработки в файловой системе
Если WorkspaceConsole используется для загрузки пакетов в приложение, на котором включен режим разработки в файловой системе (fileDesignMode=true), то операция установки пакетов отработает очень неочевидным образом. Исходный код измененных схем поменяется в базе данных, но останется прежним в файловой системе. В связи с этим, если открыть схему в дизайнере, отобразится неизмененный код из файловой системы. При этом дата модификации схемы меняется, что вносит еще большую путаницу, так как складывается ощущение, что перенос схемы прошел корректно.
В связи с этим не рекомендуетcя использование операции InstallFromRepository для переноса изменений на приложения, для которых включен режим разработки в файловой стисеме (fileDesignMode=true). Если все же использование этой операции необходимо, то после ее выполнения нужно выполнить выгрузку исходных кодов в файловую систему действием [Выгрузить пакеты в файловую систему] ([Download packages to file system]).
Пример выполнения загрузки пакета в базу данных
Описание кейса
Для приложения, установленного в каталог C:\сreatio7.12.4, загрузить пакет sdkBookExample в рабочее пространство Default. Архив с пакетом размещен в каталоге C:\SavedPackages. Содержимое пакета временно распаковать в каталог C:\TempPackages. Лог операции сохранить в каталог C:\Log.
Реализация кейса
Формирование команды запуска утилиты WorkspaceConsole удобно выполнять с помощью любого текстового редактора в файле пакетных команд Windows (*.bat или *.cmd). В этот файл необходимо поместить команду запуска утилиты:
C:\creatio\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe -packageName=sdkBookExample -workspaceName=Default -operation=InstallFromRepository -sourcePath=C:\SavedPackages -destinationPath=C:\TempPackages -skipConstraints=false -skipValidateActions=true -regenerateSchemaSources=true -updateDBStructure=true -updateSystemDBStructure=true -installPackageSqlScript=true -installPackageData=true -continueIfError=true -webApplicationPath=C:\creatio -confRuntimeParentDirectory=C:\creatio\Terrasoft.WebApp -logPath=C:\Log
pause
После сохранения пакетного файла и его запуска на выполнение (двойным кликом из проводника Windows), появится консольное окно, в котором будет отображаться процесс выполнения WorkspaceConsole с заданными значениями параметров (рис. 1).
Рис. 1. — Процесс загрузки пакета в базу данных приложения
В результате выполнения команды в конфигурацию Default приложения будет загружен пакет sdkBookExample (рис. 2).
Рис. 2. — Пакет в разделе [Конфигурация]