1. Так как приложение представляет собой совокупность всех пакетов, чтобы перенести его на другой экземпляр, необходимо собрать их все.
  2. Не вносите никаких изменений в существующие функции во время миграции. Чтобы внедрить какие-либо важные улучшения, следуйте одному из подходов:
    • Пройдите все этапы цикла разработки, включая тестирование.
    • Внедрите эти улучшения после завершения миграции. 
  3. Миграция конфигураций выполняется посредством конфигурационных пакетов. Для упрощения объедините несколько пакетов в один перед экспортом. Чтобы обеспечить импорт только актуальных версий, создайте моментальные снимки каждого импортированного приложения, следуя приведенным ниже инструкциям:
    1. Создайте локальный пакет для переноса приложения. Например, локальный пакет для моментального снимка таблиц приложения Simple может называться [SA] — Snapshot diff.
    2. Сделайте этот локальный пакет текущим.
    3. Перейдите в Настройка системы → Серверные скрипты и запустите представленный ниже скрипт, чтобы создать моментальные снимки всех таблиц с версиями: 

      Снимок таблицы
      const table = new SimpleRecord('sys_db_table');
      table.addQuery('is_vcs_enabled', true);
      table.addQuery('sys_id', '!=', '999999999999999998'); // исключить REM
      table.selectAttributes('name');
      table.query();
      while (table.next()) {
        const vcs = new SimpleVcs();
        const versionCount = vcs.createTableSnapshot(table.name);
        if (versionCount > 0) {
          ss.info(`${table.name.padStart(80, " ")}: ${versionCount} versions created`);
        }
      }
      

      Перед переносом приложения проведите анализ на предмет зависимостей от других приложений.

      Например, в уже имеющемся приложении на экземпляре могут отсутствовать роли, используемые в правилах контроля доступа (ACL) перенесенных приложений. В этом случае ограничения доступа не будут работать должным образом.

  4. Также импортируйте связанные записи следующих таблиц:
Системное название таблицыЗаголовок таблицыОписание
sys_search_index

Поисковый индекс

Хранит поисковые индексы

Записи в таблице Поисковый индекс (sys_search_index) доступны только для чтения и только пользователям с ролью admin.


sys_activity_feed_itemОбъекты ленты активности

Хранит записи изменений полей в Ленте активности.

Записи в таблице Объекты ленты активности (sys_activity_feed_item) доступны только для чтения и только пользователям с ролью admin.

sys_historyИстория

Хранит записи изменений Истории.

Записи в таблице История (sys_history) доступны только для чтения  и только пользователям с ролью admin.

sys_activities_stream_fieldАктивности

Хранит изменения полей записей, записанных виджетом Активности.

Записи в таблице Активности (sys_activities_stream_field) доступны только для чтения и только пользователям с ролью admin.

sys_email

Электронная почта

Хранит входящие и исходящие сообщения.

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

Системное название таблицыЗаголовок таблицыОписание
sys_menu_favoriteИзбранноеХранит пункты меню, добавленные пользователем в избранное.
sys_filterФильтрХранит пользовательские фильтры.
sys_user_preferenceПользовательские предпочтенияХранит пользовательские настройки.

      6. Выполняя комплексную миграцию пользователей, не забывайте импортировать роли и объекты групп.

Системное название таблицыЗаголовок таблицыОписание
userПользовательХранит список пользователей экземпляра и связанную с ним информацию.
employeeСотрудникХранит список сотрудников и связанную с ним информацию.
sys_roleРольХранит список доступных ролей.

sys_role_contains

Роль содержитТаблица M2M, хранит связи между родительскими и дочерними ролями.

sys_group

ГруппаХранит список доступных групп.

sys_group_contains

Группа содержитТаблица M2M, хранит связи между родительскими и дочерними группами.

sys_user_has_role

Роль пользователяТаблица M2M, хранит связи между пользователями и присвоенными им ролями.

sys_user_group

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

sys_user_criteria

Пользовательские критерии

Хранит список пользовательских критериев.


  • No labels