1. Do not make any changes to existing functions (either incremental or decremental changes) during migration. If you need to implement any important improvements, please follow the guidelines below:
    • Go through the development cycle stages (including testing)
    • Or implement these improvements after the migration is complete.
  2. Configuration migration is done with the Configuration Packs. To simplify this process, merge some packs before exporting. To make sure that you are importing only the actual versions, create snapshots of each application you import using the instructions below:
    1. Create a local pack for an application to migrate. For example, a local pack for the Simple Application tables snapshot may be named as a [SA] - Snapshot diff
    2. Set this local pack as current.
    3. Navigate to System Settings → Server Scripts and run the script below to create snapshots of all versioned tables:

      Table Shapshot Script
      const table = new SimpleRecord('sys_db_table');
      table.addQuery('is_vcs_enabled', true);
      table.addQuery('sys_id', '!=', '999999999999999998'); // exclude 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`);
        }
      }
      

      If you are transferring a limited application set and some applications are not included, please pay attention to the analysis of such applications. For example:

      It may contain roles used within ACLs of the migrated applications. In this case, the access restrictions will not work properly.

  3. Also, do not forget to import the related records of the following tables:
Table system nameTable titleDescription
sys_search_indexSearch Index

Stores search indices

You cannot create, edit, or delete records in the Search Index (sys_search_index) table. Only users with the admin role can read them.


sys_activity_feed_itemActivity Feed Item

Stores record field changes recorded by Activity Feed.

You cannot create, edit, or delete records in the Activity Feed Item (sys_activity_feed_item) table. Only users with the admin role can read them.

sys_historyHistory

Stores field changes history.

You cannot create, edit, or delete records in the History (sys_history) table. Only users with the admin role can read them.

sys_activity_stream_fieldActivity Stream Field

Stores record field changes recorded by Activity Stream Widget.

You cannot create, edit, or delete records in the Activity Feed Field (sys_activity_feed_field) table. Only users with the admin role can read them.

sys_emailEmailsStores Incoming and Outgoing Emails.


      4. Most users have their own interface usage patterns. Include the tables below into your migration process so as not to disrupt them:

Table system nameTable titleDescription
sys_menu_favoriteMenu FavoriteStores user favorites.
sys_filterFilterStores user Filters.
sys_user_preferenceUser PreferenceStores User Preferences.


      5. Performing user migration in a complex way, keep in mind that you also need to import roles and group objects.

Table system nameTable titleDescription
userUsersStores instance Users list and related information.
employeeEmployeesStores Employees list and related information.
sys_roleRolesStores available Roles list.

sys_role_contains

Role ContainsM2M table, stores relationships between parent and child roles.

sys_group

GroupsStores available Groups list.

sys_group_contains

Group ContainsM2M table, stores relationships between parent and child groups.

sys_user_has_role

User has RoleM2M table, stores relationships between users and roles they are granted.

sys_user_group

User GroupM2M table, stores relationships between users and groups they are granted.

sys_user_criteria

User Criteria

Stores User Criteria list.


  1. Do not make any changes to existing functions (either incremental or decremental changes) during migration. If you need to implement any important improvements, please follow the guidelines below:
    • Go through the development cycle stages (including testing)
    • Or implement these improvements after the migration is complete.
  2. Configuration migration is done with the Configuration Packs. To simplify this process, merge some packs before exporting. To make sure that you importing only actual versions, create snapshots of each application you import using the instruction below:
    1. Create a local pack for an application to migrate. For example, a local pack for the Simple Application tables snapshot may be named as a [SA] - Snapshot diff
    2. Set this local pack as current.
    3. Navigate to System Settings → Server Scripts and run the script below to create snapshots of all versioned tables:

      Table Shapshot Script
      const table = new SimpleRecord('sys_db_table');
      table.addQuery('is_vcs_enabled', true);
      table.addQuery('sys_id', '!=', '999999999999999998'); // exclude 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`);
        }
      }
      

      If you are transferring a limited application set and some applications are not included, please pay attention to the analysis of such applications. For example:

      It may contain roles used within ACLs of the migrated applications. In this case, access restrictions will not work properly.

  3. Also, do not forget to import the related records of the following tables:
Table system nameTable titleDescription
sys_search_indexSearch IndicesStores search indices.
sys_activity_feed_itemActivity Feed ItemsStores record field changes recorded by Activity Feed.
sys_historyHistoryStores field changes history.
sys_activity_stream_fieldActivity Stream FieldsStores record field changes recorded by Activity Stream Widget.
sys_emailEmailsStores Incoming and Outgoing Emails.


      4. Most users have their own interface usage patterns. Include the tables below into your migration process so as not to disrupt them:

Table system nameTable titleDescription
sys_menu_favoriteMenu FavoriteStores user favorites.
sys_filterFilterStores user Filters.
sys_user_preferenceUser PreferenceStores User Preferences.


      5. Performing user migration in a complex way, keep in mind that you also need to import roles and group objects.

Table system nameTable titleDescription
userUsersStores instance Users list and related information.
employeeEmployeesStores Employees list and related information.
sys_roleRolesStores available Roles list.

sys_role_contains

Role ContainsM2M table, stores relationships between parent and child roles.

sys_group

GroupsStores available Groups list.

sys_group_contains

Group ContainsM2M table, stores relationships between parent and child groups.

sys_user_has_role

User has RoleM2M table, stores relationships between users and roles they are granted.

sys_user_group

User GroupM2M table, stores relationships between users and groups they are granted.

sys_user_criteria

User Criteria

Stores User Criteria list.



  • No labels