Актуальная версия ExeMES - 1.3 (релиз от ноября 2024 г.)

Процесс обновления БД MESDB до версии 1.3 возможен только с версии 1.2. Для обновления до версии 1.2 см. пункт Обновление на версию 1.2

Для обновления ПО ExeMES 1.3 используется встроенный в Middleware функционал. Для корректной работы функционала обновления необходимо предварительно выполнить следующие действия:

Необходимо добавить в существующий реалм Keycloak новые роли и назначить эти роли требуемой группе пользователей, для этого:

Нужно зайти в приложение Keycloak под администратором реалма и выбрать в выпадающем списке реалм exemes

Далее в левом боковом меню выбрать пункт Clients

В обновившейся центральной части экрана выбрать клиент Middleware

Далее необходимо перейти на вкладку Roles и нажать кнопку Create Role

В открывшемся окне в поле Role Name необходимо ввести название новой роли EAdm в поле Description нужно ввести Edit (manage) Admin Tools

После заполнения полей необходимо нажать кнопку Save.

Аналогично роли EAdm необходимо добавить еще одну роль с именем VAdm и описанием View Admin Tools

После заполнения полей необходимо нажать кнопку Save.

Для назначения новых ролей определенной группе пользователей необходимо переключиться в левом меню на пункт Groups, затем необходимо выбрать группу пользователей, которой будут доступна роль разрешающая просмотр информации о версии БД MESDB (VAdm) и роль разрешающая производить обновление версии БД MESDB (EAdm). В примере ниже роль VAdm будет добавлена группе EXEMES_Admins. После выбора группы пользователей необходимо перейти на вкладку Role mapping в центральной части экрана и нажать на кнопку Assign role

Во всплывающем окне необходимо выбрать фильтр Filter by clients, правее фильтра в строке поиске указать имя роли VAdm и нажать стрелку для поиска. После необходимо поставить галку напротив группы VAdm и нажать кнопку Assign

 

Теперь все пользователи группы EXEMES_Admins будут иметь возможность проверять актуальность версии БД MESDB.

Аналогично для разрешения обновления версии БД MESDB группе пользователей необходимо назначить роль EAdm.

Для того чтобы приложение Middleware корректно обновила БД MESDB необходимо подключиться к БД MESDB любым клиентом СУБД, поддерживающим работу с Postgre версии 15.4 и выполнить следующий скрипт:

CREATE TABLE public."__EFMigrationsHistory" (
"MigrationId" varchar(150) NOT NULL,
"ProductVersion" varchar(32) NOT NULL,
CONSTRAINT "PK___EFMigrationsHistory" PRIMARY KEY ("MigrationId")
);

INSERT INTO public."__EFMigrationsHistory"
("MigrationId", "ProductVersion")
values
('20240312123332_MESDB_V0', '8.0.8'),
('20240708154420_MESDB_V1.2.0', '8.0.8');

Для обновления версий необходимо скорректировать файл docker-compose, указав

для Middleware

image: "git.exeplant.ru:5050/mes-develop/exemesmiddleware:1.3.0"

для MesClient

image: "git.exeplant.ru:5050/mes-develop/exemesclient:1.3.0"

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

 Далее необходимо использовать функционал автоматического обновления БД MESDB.

Кроме обязательных действий по обновлению БД MESDB мы предлагаем обновить описания статусов производственных заданий. Это обновление носит рекомендательный характер и никак не влияет на функционал ExeMES.

Для обновления необходимо выполнить следующий скрипт в любом клиенте СУБД подключенном к MESDB

update job_state set state_desc = 'НОВОЕ' where state_cd = 1;
update job_state set state_desc = 'В РАБОТУ' where state_cd = 2;
update job_state set state_desc = 'ВЫПОЛНЯЕТСЯ' where state_cd = 3;
update job_state set state_desc = 'ЗАВЕРШЕНО' where state_cd = 4;
update job_state set state_desc = 'ПРИОСТАНОВЛЕНО' where state_cd = 5;
update job_state set state_desc = 'ЗАМОРОЖЕНО' where state_cd = 6;
update job_state set state_desc = 'ОТМЕНЕНО' where state_cd = 7;
update job_state set state_desc = 'ПРОПУЩЕНО' where state_cd = 8;
update job_state set state_desc = 'ЗАМЕНЕНО' where state_cd = 9;


Для обновления ПО ExeMES до версии 1.2 необходимо:

  • установить ПО Guardant (при обновлении с версии 1.0)

  • обновить БД MESDB;
  • скорректировать путь для доступа контейнеров к существующему хранилищу СУБД Postgre;
  • удалить старые и запустить новые контейнеры ExeMES.

Перед обновлением БД MESDB необходимо создать резервную копию БД. При обновлении версии БД MESDB существующая конфигурация производственной модели и накопленные производственные данные будут сохранены. Обновление БД MESDB затрагивает только схему public, в том числе будут обновлены функции и хранимые процедуры.

Для обновления версии БД MESDB потребуется любой клиент СУБД, поддерживающий подключение к СУБД Postgres. В клиенте СУБД необходимо выполнить подключение к БД MESDB, параметры подключения можно получить из docker-compose файла, который использовался при запуске существующей версии ExeMES. Далее необходимо выполнить скрипты sql, который располагаются в папке db_updates в дистрибутиве ExeMES 1.2:

  1. Для обновления с версии 1.0:
    1. 0.0_to_V1.0.1.sql
    2. 0.1_to_V1.0.2.sql
    3. 0.2_to_V1.0.3.sql
    4. 0.3_to_V1.0.4.sql
    5. 0.4_to_V1.0.5.sql
    6. 0.5_to_V1.1.0.sql
  2. Для обновления с версии 1.1
    1. 1.0_to_V1.2.0.sql

По умолчанию при установке ExeMES для хранилища СУБД Postgre используется директория /root/dev/db/. Если при установке ExeMES было задано альтернативное размещение хранилища СУБД Postgre, то необходимо изменить путь подключения к нему. 

Для этого перед развертыванием новых контейнеров ExeMES в Docker необходимо скорректировать файл docker-compose в части конфигурации контейнера Postgres, а именно добавить:

volumes:

      - [путь к папке с существующему хранилищу СУБД Postgre]:/var/lib/postgresql/data/

Для запуска контейнеров ExeMES версии 1.2, необходимо предварительно остановить и удалить существующие контейнеры ExeMES

  • Postgres;
  • Keycloak;
  • Exemiddleware;
  • Exemesclient.


Т.к. Keycloak хранит конфигурацию в БД, при удалении контейнера конфигурация не будет потеряна, внесенные настройки сохранены в БД и будут использованы новой версией контейнера

Если вы планируете изменить сертификаты безопасности не забудьте их сгенерировать и указать для использования приложениям как указано в инструкции

Затем необходимо установить новую версию ExeMES согласно инструкции ниже

Для обновления ПО ExeMES до версии 1.1 необходимо:

  • установить ПО Guardant

  • обновить БД MESDB;
  • скорректировать путь для доступа контейнеров к существующему хранилищу СУБД Postgre;
  • удалить старые и запустить новые контейнеры ExeMES.

Перед обновлением БД MESDB необходимо создать резервную копию БД. При обновлении версии БД MESDB существующая конфигурация производственной модели и накопленные производственные данные будут сохранены. Обновление БД MESDB затрагивает только схему public, в том числе будут обновлены функции и хранимые процедуры.

Для обновления версии БД MESDB потребуется любой клиент СУБД, поддерживающий подключение к СУБД Postgres. В клиенте СУБД необходимо выполнить подключение к БД MESDB, параметры подключения можно получить из docker-compose файла, который использовался при запуске существующей версии ExeMES. Далее необходимо выполнить скрипты sql, который располагаются в папке db_updates в дистрибутиве ExeMES 1.1:

  1. 0.0_to_V1.0.1.sql
  2. 0.1_to_V1.0.2.sql
  3. 0.2_to_V1.0.3.sql
  4. 0.3_to_V1.0.4.sql
  5. 0.4_to_V1.0.5.sql
  6. 0.5_to_V1.1.0.sql

По умолчанию при установке ExeMES для хранилища СУБД Postgre используется директория /root/dev/db/. Если при установке ExeMES было задано альтернативное размещение хранилища СУБД Postgre, то необходимо изменить путь подключения к нему. 

Для этого перед развертыванием новых контейнеров ExeMES в Docker необходимо скорректировать файл docker-compose в части конфигурации контейнера Postgres, а именно добавить:

volumes:

      - [путь к папке с существующему хранилищу СУБД Postgre]:/var/lib/postgresql/data/

Для запуска контейнеров ExeMES версии 1.1, необходимо предварительно остановить и удалить существующие контейнеры ExeMES

  • Postgres;
  • Keycloak;
  • Exemiddleware;
  • Exemesclient.


Т.к. Keycloak хранит конфигурацию в БД, при удалении контейнера конфигурация не будет потеряна, внесенные настройки сохранены в БД и будут использованы новой версией контейнера

Если вы планируете изменить сертификаты безопасности не забудьте их сгенерировать и указать для использования приложениям как указано в инструкции

Затем необходимо установить новую версию ExeMES согласно инструкции ниже