Migration tool updates in OpenInsight 10.2
Published 20 SEP 2022 at 02:30:41PM
Updated on 09 JUN 2023 at 02:30:41PM
Based on user feedback (and our own experience) version 10.2 includes the following new updates for the OpenInsight migration process that we think you'll find invaluable when moving your applications:
- The ability to choose individual migration tasks
- The ability to select individual entities
- The ability to migrate SYSPROG components
We'll take a look at each of these features below, along with a small note on "migrating" your data.
Task Selection
In previous releases the Migration Tool had a fixed set of tasks to perform which it did in sequence. In this release you may now specify which tasks you wish to execute instead, which might save some time if you have to repeat the migration process more than once (a common requirement if needing to keep a version 9 application synchronized with version 10 during upgrade development).
By default all tasks are selected, but you may deselect any that you don't wish to run.
Task | Description |
---|---|
Migrate App Settings | Migrates information from the SYSAPPS record. Migrates database environment settings. Migrates custom event (CFG_EVENTS) settings. |
Migrate Users | Migrates user details into the SYSUSERS table. |
Migrate DLL Prototypes | Migrates "DLL_" records in SYSPROCS to DLLPROTOTYPE entities. |
Migrate C-Structures | Migrates "STRUCT_" records in SYSOBJ to DLLSTRUCT entities. |
Migrate Promoted Events | Migrates promoted event records in SYSREPOSEVENTS/EXES to PROMOTEDEVENT/EXE entities. |
Migrate RDK records | Migrates SYSREPOSVIEWS/RELEASES records to REPVIEW/RELEASE entities. |
Migrate Entities | Migrates application entities. Note that these can now be specified individually if desired (see below). |
Migrate Arev32 records | Migrates Arev32-specific records in SYSENV. Migrates Arev32 records from SYSPRINTERS. |
Clean Relationships | Removes invalid relationships (Using/Used By). |
Compile Stored Procedures | Compiles migrated stored procedures. |
Compile Promoted Events | Compiles migrated promoted events. |
Compile Forms | Compiles migrated forms. |
Migration Tool Tasks
Entity Selection
If you choose the "Migrate Entities" task then you now have the option to select individual entities to migrate (If you don't select any then all entities in the v9 application will be migrated).
To select individual entities right-click on the "Selected Entities" control and choose "Select Entities" from the menu, or click the "…" options button in the top-right of the control's header:
Selected Entities option button
You may now use the "Select Repository Entities" dialog to choose which entities you wish to migrate:
Select Repository Entities dialog
As you can see there are quite a few options you can use to find the entities you wish to migrate - these options make a "repository filter" that is used to create a list to choose from:
Option | Description |
---|---|
Filter ID | Name of a saved filter (REPFILTER entity). Choosing a filter will load the other selection criteria controls in this dialog with the saved filter details. |
View ID | Name of a saved Repository View (REPVIEW entity). If specified, the list of entities in this View is used as a starting point for the filter when it executes. |
Entity ID | If specified only entities matching this name will be selected. The standard '[]',']' and '[' RList-style syntax for "containing", "starting with" and "ending with" is respected. |
Date From | If specified only entities updated from this date will be included. This option supports a "nD" syntax where "n" is the number of days since the current date. E.g. to select entities updated since the previous day specify "1D", for entities updated in the last week specify "7D" and so on. |
Date To | If specified do not include entities after this date. This option supports the same "nD" syntax as the "Date From" option. |
Updated By | If specified then only entities updated by the specified user(s) are returned. This option may contain a "," delimited list for matching against multiple users. |
Filter Options | Only entities matching the checked options will be returned. Note that for a migration operation the "Show Inherited Entities" checkbox is always disabled (This dialog is used elsewhere in the system to select repository entities, so it can be enabled in such scenarios). |
Filter By Types | Allows you to choose specific entity types and classes to include. If blank then all types and classes are included in the search. Click the "…" options button in the top right corner of the control, or right-click to use the context menu to launch a dialog to select the types and classes. |
Filter By SELECT | This option allows you to enter an RLIST SELECT statement against the SYSREPOS table that will be used to filter the entities. |
Save Filter | Click this button to save the filter criteria for future re-use (stored as a REPFILTER entity in the repository). |
Apply Filter | Click this button to execute the filter criteria and load a list of matching entities into the "Available" controls below. If you have not entered any criteria then all entities in the v9 application will be selected. |
Filter Options
Once you have applied your filter the "Available Types" control is populated - selecting a Type populates the "Available Entities" control where you can select the items that you wish to migrate. Use the ">" and "»" buttons to add them to the "Selected Entities" control on the right, or the "<" and "«" buttons to remove them.
Selecting Entities in the dialog
Things to note:
- As items in the "Available Entities" control are selected, the list of items that they use is shown in the "Related (Used By) Entities" control below. These can also be selected if you wish.
- Each of the "Available" and "Selected" controls have context menus and "…" options buttons (top-right corner).
- If the "Auto-Add Executable" option is checked when you add entities to the "Selected Entities" control then any executable versions of the entity (e.g. STPROCEXE, OIWINEXE etc) are also added.
- If the "Auto-Add Source" option is checked when you add entities to the "Selected Entities" control then any source versions of an executable entity (e.g. STPROC, OIWIN etc) are also added.
Clicking "OK" takes you back to the main migration form where you will see the list of entities selected. From there you may click the "Next" button to start the migration process.
(Note that the task and entity selections are saved automatically between migrations so that you may use them again if you wish.)
Migrating items from SYSPROG
Previous versions of the migration tool prevented migrating any entities from the SYSPROG application. This was to preserve the system from being damaged in case older v9 entities overwrote the v10 ones, thereby rendering it unusable.
With this release you may run the migration form from your SYSPROG application with the following restrictions:
- You may only execute the following tasks:
- Migrate RDK Records
- Migrate Entities - You must specify the entities to migrate - you cannot migrate "All Entities"!
- Migrate Arev32 Records
- Clean Relationships
- Compile Stored Procedures
- Compile Forms
Bonus Trivia - a quick note on migrating data
The migration process begins with creating a new application in version 10 and then executing a form called RTI_MIGRATE_V9_TO_V10, which guides you through the steps necessary to move your application from version 9.
At this point you select the location of the application you are migrating from, after which you see the data volumes that are attached in it. There are options for the data to be "migrated", but in my experience it is best to move and attach the data you want for your application before you attempt the migration rather than use the facility here. The migration process does not change your data at all so there is no real advantage to using this facility (it is basically provided as a convenience), and in fact, if you are moving tables containing relational indexes they will be removed. It is far easier to copy/move and attach the tables yourself using the Database ToolPanel before you get here.
More Bonus Trivia - Sharing index data between v9 and v10
While on the topic of migrating data it is also worth taking a look at the end of this blog post by Sprezzatura if you intend to share your tables between v9 and v10 systems - you must make sure that you run the indexing system in a v9 compatible format:
Conclusion
The migration tool has been significantly improved for the version 10.2 release and we're sure you will find it much more helpful when moving your older applications to the latest version of OpenInsight.