Перейти к содержанию

Обновление до новой сборки платформы

В данном разделе описан порядок перехода на новую версию платформы как в случае, если не производилось доработок (то есть не было изменений в проектах расширений, не изменялась конфигурация: типы карточек, схема, представления, рабочие места, локализация), так и порядок дополнительных действий, если доработки имелись.

Подробное описание состава поставки можно посмотреть в Руководстве по установке СЭД Tessa.

Подготовка к обновлению

Перед выполнением обновления платформы необходимо:

  1. Попросить всех пользователей завершить работу с системой.

  2. Остановить сервис кроноса Syntellect Chronos, убедившись, что отправлены все оповещения по почте (или можно удалить неотправленные оповещения, очистив таблицу Outbox в базе данных).

  3. Остановить веб-сервис web.

  4. Сделать резервную копию базы данных и папки с файлами.

  5. Сделать резервную копию папок с приложениями TessaAdmin, TessaClient, с веб-сервисом web, с сервисом Chronos (чтобы потом можно было найти старые конфигурационные файлы и файл лицензии).

Обновление типового решения

Специалисту, осуществляющему обновление, необходимо прочитать ReleaseNotes.txt (из папки сборки), а именно: пункты (1) для версий сборки, на которую выполняется обновление, а также тех версий, которые были пропущены. Например, при обновлении с версии 2.2 сразу на 2.4 надо прочитать пункты и для сборки 2.3 (ниже в том же файле ReleaseNotes.html) и для сборки 2.4. Пункты содержат важную информацию по обновлению.

Также необходимо выполнить пункты, описанные в разделе Подготовка к обновлению.

Выполнение обновления:

  1. Распаковать установочный архив tessa-3.x.x.

  2. Заменить полностью файлы веб-сервиса: из папки сборки Services скопировать всё содержимое в папку сервиса (обычно это папка C:\inetpub\wwwroot\tessa).

  3. Проверить настройки пула приложений и сервиса web (можно также проверить включенные компоненты), следуя Руководству по установке и используя информацию из файла ReleaseNotes.txt:

    • Скопировать файл лицензии в папку с файлом app.json и подпапкой web.

    • Настроить конфигурационный файл app.json. В том числе проверить путь к файлу лицензии, значение параметра TokenSignature (из старого конфигурационного файла) вставить в параметр SignatureKey.

    • Убедиться, что в дополнительных настройках веб-сервиса web отключён флаг Разрешить 32-разрядные приложения:

  4. Запустить веб-сервис web.

  5. Обновить конфигурацию можно одним из следующих способов:

    С помощью выполнения bat файла Upgrade.bat (из установочного архива), в этом случае можете переходить к следующему пункту, минуя подпункты ниже.

    Вручную, выполнив действия, описанные ниже.

    • Выполнить скрипт Fixes/Migration-3.x-pre.sql для тех версий, на которые выполняется обновление (скрипты находятся в папке Fixes установочного архива). Скрипты могут отсутствовать, если их выполнение не требуется.

    • Обновить схему данных:

      • Запустить приложение Applications\SchemeEditor.

      • Открыть в SchemeEditor существующую базу TESSA.

      • Если система предложит обновить структуру базы данных, то согласиться с обновлением и сохранить (Ctrl+S).

      • Открыть новую версию схемы, которая находится в папке Configuration\Scheme установочного архива.

        Для простоты доработок типового решения используются так называемые библиотеки, список которых отображается при открытии схемы. Надо нажать ОК:

      • Сохранить новую схему в существующую базу TESSA

        Important

        Если при сохранении возникнут ошибки, попробовать перед сохранением выполнить ConstraintsOff.sql, а после сохранения выполнить ConstraintsOn.sql. Оба скрипта находятся в папке Fixes.

    • Выполнить скрипты Fixes\Migration-3.x.sql. Например, при обновлении с версии 2.2 на версию 2.4 требуется выполнить скрипты Migration-2.3.sql и Migration-2.4.sql в указанном порядке.

    • Открыть новый TessaAdmin (запустить с ключом /a:https://имя_сервера/папка_tessa).

      Note

      В соответствии с ReleaseNotes.txt сотрудник Admin автоматически получает следующие параметры входа: логин admin, пароль admin (изменения вносит выполненный ранее скрипт миграции).

      Раздел “Локализация” - импортировать библиотеки локализации (из папки сборки Configuration\Localization), сохранить, дождаться сохранения и повторно открыть TessaAdmin.

    • В разделе “Карточки” импортировать типы карточек, файлов, заданий (из папки Configuration\Types), нажать “Сохранить всё”.

    • Далее импортировать карточки, отмеченные в ReleaseNotes.txt как добавленные (из подпапок папки сборки - Configuration\Cards\*). Для загрузки отдельных файлов необходимо использовать кнопку “+”:

    • Раздел “Представления” - импортировать новые версии представлений (из папки Configuration\Views). Для уже существующих представлений не надо ставить при импорте флаги “Удалить перед импортом…” и “Заменить разрешения…”, а для новых добавляемых представлений надо поставить только флаг “Заменить разрешения” (т.к. для некоторых из представлений должна быть указана роль “Все сотрудники”).

    • Раздел “Рабочие места” - импортировать рабочие места (из папки Configuration\Workplaces). Аналогично, не надо ставить при импорте флаги “Удалить перед импортом…” и “Заменить разрешения…”.

  6. Опубликовать новые версии TessaAdmin, TessaClient и Tessa Applications.

    Можно воспользоваться бат-файлами publish_admin_demo.bat, publish_client_demo.bat и publish_appmanager_demo.bat (из папки Applications), предварительно указав в них актуальный путь к веб-сервису web.

  7. Для новых пользователей следует устанавливать сразу новую версию Tessa Applications, установочные файлы находятся в папке Setup. Перед установкой необходимо прочитать readme.txt.

  8. Обновить сервис Syntellect Chronos:

    • Скопировать новый сервис Chronos (папка Chronos) на место старого.

    • Задать правильные параметры в конфигурационном файле app.json, который находится в папке рядом с Chronos.exe.

      В том числе вставить значение параметра SignatureKey такое же, как в файле app.json в папке веб-сервиса. Не забыть скопировать рядом файл лицензии и указать путь до него в этом же app.json.

    • Запустить сервис Syntellect Chronos и, если в папке сервиса появится файл log.txt, проверить что он не содержит сообщений об ошибках.

      Note

      Установка и настройка кроноса описаны в разделах 5 и 6 Руководства по установке (сервис устанавливать заново не надо, достаточно остановить его до обновления и запустить после) .

  9. Открыть TessaClient и проверить результат обновления.

Обновление кастомизированного решения

Обновление платформы с кастомизированным решением необходимо также начинать с выполнения действий из раздела Подготовка к обновлению.

Далее обновление выполняется по инструкции из раздела Обновление типового решения, с учетом следующих особенностей:

Important

Обратите внимание, что обновление конфигурации с помощью утилиты Upgrade.bat не подходит для обновления кастомизированных решений.

  1. В файле ReleaseNotes.html внимательно прочитайте пункты (1) для версий сборки, на которую вы обновляетесь, или которые вы пропустили. Например, при обновлении с версии 2.2 сразу на 2.4 надо прочитать пункты и для сборки 2.3 (ниже в том же файле ReleaseNotes.html) и для сборки 2.4. Пункты содержат важную информацию по обновлению.

  2. Если схема данных была доработана согласно рекомендациям, т.е. в отдельной библиотеке схемы, то достаточно скопировать свою библиотеку в папку Configuration/Scheme/Partitions в новой сборке, и уже оттуда обновить схему через приложение SchemeEditor.

  3. Если по каким-то причинам потребовалось изменить файлы основной схемы или библиотеки типового решения, то потребуется вручную объединить xml-файлы в папке Configuration/Scheme. Для этого можно воспользоваться средствами репозиториев (Git, Mercurial и др.), а также утилитами построчного сравнения файлов (такими как KDiff3).

    Important

    Обратите внимание, что в файлах .tsd и .tsp таблицы, процедуры и другие объекты указаны не в произвольном порядке, а в порядке связей друг между другом (таблица снизу может ссылаться только на таблицы, заданные выше). Поэтому порядок объектов потребуется восстановить в соответствии с тем порядком, в котором они упорядочены в новой сборке системы.

  4. После обновления схемы и выполнения скриптов, когда потребуется запустить TessaAdmin, понадобится заменить те представления, которые поменялись в новых сборках (согласно ReleaseNotes.html).

    При этом, для упрощения сравнения можно создать копию вашего представления с другим алиасом (в контекстном меню на представлении есть функция “Дублировать”). После этого импортируйте представление из сборки. Далее, запустив вторую копию приложения TessaAdmin, вы сможете одновременно на экране открыть обе версии представления (новую из сборки и вашу, изменённую, с другим алиасом).

    Последовательно перенести те изменения, которые выполнялись при кастомизации представления, с учётом новой метаинформации и запроса. Иногда представление в новой сборке отличается незначительно, а иногда оно практически полностью переписано.

  5. Аналогично обновляются рабочие места. Если вы изменяли типовые рабочие места “Пользователь” и “Администратор”, и они были изменены в рамках сборки, то вы можете сначала создать копию рабочего места (пункт “Дублировать” в контекстном меню), потом импортировать с заменой рабочее место из сборки, и затем, посредством drag&drop, перетащить узлы с папками и представлениями из копии в новую версию рабочего места.

    Также может потребоваться выполнить какие-либо настройки для узлов (например, добавить или удалить расширение). Такие изменения могут быть описаны в пунктах (1) файла ReleaseNotes.html (или какие-либо изменения с предыдущим рабочем местом могли быть выполнены в процессе кастомизации).

  6. И аналогично обновляются типы карточек и заданий (типы файлов обычно не изменяются, если это отдельно не описано в пунктах (1) файла ReleaseNotes.html). Создаются копии типов, потом новые типы импортируются с заменой, и контролы/блоки вместе со всеми настройками переносятся из копии в новую сборку.

  7. При обновлении программных расширений следует учитывать, что из папки Source сборки потребуется обновить все сборки типового решения, т.е. папки Source\Extensions\Tessa.Extensions.Default.***, включая (обязательно!) файлы проектов .csproj. В вашем репозитории такие папки надо сначала удалить (со всеми сделанными изменениями), потом скопировать в репозиторий папки из сборки.

    Если вы изменяли исходный код расширений типового решения, то по тем изменениям, которые показывает репозиторий, а также по вашим заметкам надо заново выполнить изменения в новых версиях расширений.

    Warning

    В типовых расширениях обычно очень много изменений, без которых сборка будет работать некорректно, поэтому игнорировать эти изменения нельзя, их надо сначала перенести, потом выполнить merge средствами репозитория.

    Папки Tessa.Extension.Client, Tessa.Extension.Server, Tessa.Extension.Server.Web, Tessa.Extension.Shared, Tessa.Extension.Chronos (находящиеся в папке Source\Extensions), а также папки с примером модулей Source\Modules\Tessa.Module.\*** обновлять не требуется, кроме тех случаев, когда в пунктах (1) файла ReleaseNotes.html явно приведены рекомендации по обновлению (это бывает редко, и такие изменения незначительны). Поэтому в этих сборках можно добавлять или удалять любой код без опасения, что в дальнейшем потребуется выполнять merge.

    Папку Bin\packages можно не обновлять, и её содержимое также можно не добавлять в репозиторий, т.к. необходимые зависимости будут восстановлены из серверов NuGet при наличии доступа к сети. Однако, папка должна быть создана (хотя бы как пустая папка) для успешной сборки проектов.

    В Visual Studio в окне Solution Explorer в контекстном меню на корневом элементе дерева нажмите Manager NuGet Packages for Solution. Перейдите на вкладку Updates и обновите NuGet-пакеты с именами, содержащими “Tessa” или “Chronos”, до версии вашей сборки. Например, если у вас сборка 3.1.0, то обновляйте NuGet-пакеты до версии 3.1.0, а не до последней доступной версии 3.1.1 (например).

  8. После обновления расширений их можно проверить, собрав solution в Release, затем скопировав расширения сервера в папку веб-сервиса web, расширения клиента в приложения TessaClient и TessaAdmin (и опубликовав их), а плагины Chronos скопировав в папку Chronos\Plugins\НазваниеПапкиПроекта (по вопросам создания такой папки обратитесь к файлу Tessa.Extensions.Chronos\readme.txt).

    Если в ваших проектах есть ссылки на NuGet-пакеты сторонних библиотек, то скопируйте их файлы .dll из папки сборки проектов bin\Release в папку веб-сервиса web, или в папку с плагинами Chronos, или в папку с утилитой tadmin (в зависимости от того, в какие сервисы вы копируете .dll).

Important

Не забывайте выполнять бэкап базы данных перед выполнением обновления.

Следуя приведённым рекомендациям, вы сможете быстро обновить даже самые сложные и кастомизированные решения.

Back to top