Step 2 - Migrate your data

Restore backed-up v2 data into your CAST Imaging v3 installation

Overview

This step involves migrating the following data to your CAST Imaging v3 installation, i.e.:

  • data backed up in Step 1 - Backup your data from CAST Imaging Viewer v2 and CAST Console v2 enterprise
  • data in-situ from CAST Console v2 standalone

All migration actions are performed on machines where CAST Imaging v3 components are installed.

Requirements

See Requirements.

You should also ensure that you have completed Step 1 - Backup your data.

Process

Step 1 - Download and unzip the migration tool

Download and unzip the com.castsoftware.imaging.migrationtoolexternal link extension on the machine(s) where the migration will be run:

  • the machine where the CAST Imaging v3 imaging-viewer component is installed
  • for a v2 CAST Console enterprise/distributed migration, a machine where the CAST Imaging v3 analysis-node component is installed (any node can be used)
  • for a v2 CAST Console standalone migration, the machine where all CAST Imaging v3 components are installed
  • for a migration to Linux/Kubernetes, the machine on which the migration tool will be run must have kubectlexternal link installed and configured to connect to the cluster. Ensure that kubectl is also configured on the PATH by running kubectl version in terminal

Use one of the following download methods based on your target CAST Imaging v3 platform:

$ curl -# -O -J "https://extend.castsoftware.com/api/package/download/com.castsoftware.imaging.migrationtool/<version>?platform=linux_x64" -H "x-nuget-apikey: <api-key>" -H "accept: application/octet-stream"

Where:

  • <version>: use latest for the most recent release, or specify a version such as 1.2.0-funcrel.
  • <api-key>: your CAST Extend API key — obtain from your CAST Extend profile settingsexternal link.
  • -#: shows a download progress bar.
  • -O (--remote-name): saves the file to the current folder using the server-provided filename.
  • -J (--remote-header-name): uses the filename from the server’s Content-Disposition header instead of the URL.
  • -H (--header): passes an additional HTTP header with the request.

Step 2 - Set-up the migration configuration file

The migration process is run via a batch file which refers to a configuration file containing various options that determine how the migration is actioned. Therefore, you now need to set-up this configuration file: you can find it at the root of the unzipped migration tool extension:

  • For CAST Imaging V3 installed on Microsoft Windows: migration.conf
  • For CAST Imaging V3 installed on Linux (Docker/Podman/Kubernetes): migration_linux.conf

The configuration file contains various distinct sections, described below:

  1. General options
  2. Neo4j options
  3. Console options
  4. Container options

General options

Option Description migration.conf migration_linux.conf
option= Choose one of the following - all options should ONLY be run once:

- All: migrate both CAST Imaging Viewer v2 and Console v2, i.e. for a standalone/single machine deployment of CAST Imaging v3 where imaging-viewer, imaging-services and analysis-node components are all installed on the SAME machine.

- Neo4j: migrate only CAST Imaging Viewer v2, must be run on the machine where the CAST Imaging v3 imaging-viewer component is installed. This option must be run BEFORE the Console option.

- Console: migrate only CAST Console v2, must be run on a machine where a CAST Imaging v3 analysis-node component is installed. This option must be run AFTER the Neo4j option. When using ≥ 1.2.0-funcrel, you must also set noviewer=Yes (you may need to uncomment this option).
log= A local folder for storing the migration log files. For Microsoft Windows use a standard Microsoft Windows path with back slashes, e.g.: C:\temp\logs. For Linux, use forward slashes, e.g.: /tmp/migration/logs. The tool will attempt to create this folder if it cannot be found.
apikey= A CAST Imaging v3 API key - you can obtain this by clicking the user icon in the top right corner of the screen and selecting Profile:



GATEWAY_HOMEPAGE_URL= The “public access URL” of your CAST Imaging v3 installation (defined during the installation), relative to the machine on which you are running the migration action. For example if all your v2 and v3 components are installed on one machine, you can leave this set to the default http://localhost:8090. Otherwise, set this URL to match the location of the imaging-services component in your network.
noviewer=
Available in ≥ 1.2.0-funcrel

Commented by default. Uncomment and set to Yes when using option=Console (i.e. if you do not use CAST Imaging Viewer v2, or when CAST Imaging Viewer V2 is installed on a separate machine.) By default the tool performs checks on the CAST Imaging Viewer Service before proceeding - this option bypasses those checks. Do not use with option=All or option=Neo4j.
install_path=
Available in ≥ 1.2.0-funcrel

Path to your CAST Imaging V3 installation for Docker/Podman if using a non standard path. Set by default to /opt/cast.

Neo4j options

These options define the CAST Imaging Viewer v2 migration:

Option Description migration.conf migration_linux.conf
imaging_viewer_path=
Available in ≥ 1.2.0-funcrel

Path to your CAST Imaging V3 installation. Unless you have customized this location, use the default path (using standard Microsoft Windows back slashes): C:\Program Files\Cast\Imaging\CAST-Imaging-Viewer\.
neo4j_adminpath= Not used in ≥ 1.2.0-funcrel. Path to the Neo4j administration tool neo4j-admin in your CAST Imaging v3 installation. Unless you have customized this location, use the default path (using standard Microsoft Windows back slashes): C:\Program Files\Cast\Imaging\CAST-Imaging-Viewer\neo4j\bin.
neo4j_backupdir= Path (For Microsoft Windows, use back slashes, for Linux, use forward slashes) to the local folder containing the backup generated from CAST Imaging Viewer v2, as described in Step 1 - Backup your data.
neo4j_host=, neo4j_port=, neo4j_database=, neo4j_user=, neo4j_password=, neo4j_scheme= The details of your Neo4j instance, i.e. as installed with CAST Imaging v3. Unless you have customized this, use the default options provided in the configuration file.

Console options

These options define the CAST Console v2 migration:

Option Description migration.conf migration_linux.conf
console= Choose one of the following depending on your migration strategy:

- Standalone
- Enterprise
process= Determines the type of migration: use All unless directed to use a different option by CAST Support.
legacy=Yes This option is commented by default and when uncommented allows you to migrate specifically to CAST Imaging 3.2.x-funcrel only (where there are two persistence schemas). If you are migrating to a more recent release of CAST Imaging v3, leave this option commented. This option functions with v3admincenter= and v3nodeschema=.
v3admincenter= This option is commented by default and allows you to migrate specifically to CAST Imaging 3.2.x-funcrel only (where there are two persistence schemas), i.e. it functions with legacy=Yes. The option defines the name of the v3 admin_center persistence schema - if this schema name has NOT been customised you do not need to uncomment it.
v3nodeschema= This option is commented by default and allows you to migrate specifically to CAST Imaging 3.2.x-funcrel only (where there are two persistence schemas), i.e. it functions with legacy=Yes. The option defines the name of the v3 analysis_node persistence schema - if this schema name has NOT been customised you do not need to uncomment it.
v3controlpanel= This option is commented by default and allows you to migrate specifically to CAST Imaging ≥ 3.3.x-funcrel where you have defined a custom name for the the v3 control_panel persistence schema - if this schema name has NOT been customised you do not need to uncomment it.
cast84homedir= Path (using standard Microsoft Windows back slashes) to the CAST Imaging Core 8.4 installation folder, e.g.: C:\Program Files\CAST\8.4. Replaces casthomedir= available in older releases of the tool.
v2aipnodedatadir= Only valid for a standalone migration: CAST Console v2 data folder containing the application-standalone.yml file, e.g.: C:\ProgramData\CAST\AIP-Console-Standalone. Will be ignored when console=Enterprise.
sharedrootmapping=
Available in ≥ 1.2.0-funcrel

The path to the “shared” folder accessed by the various containers. Set by default to /opt/cast/shared.
zipfile= Only valid for an enterprise migration: path (for Microsoft Windows, use back slashes, for Linux, use forward slashes) to the ZIP file containing the backup generated from CAST Console v2 enterprise as described in Step 1 - Backup your data. Will be ignored when console=Standalone.
css_user= Username used to connect to database instance defined by css_host= (default: operator).
css_host= Hostname/IP address of the database instance where the CAST Imaging v3 control_panel (admin_center and analysis_node in older releases) schemas are stored. (default: localhost). For a standalone migration, the v2 node_standalone schema must also exist on this instance.
css_port= Port for database instance defined by css_host (default: 2284).
css_database= Name of the database in which the CAST Imaging v3 control_panel (admin_center and analysis_node in older releases) is stored on the database instance (default: postgres). For a standalone migration, the V2 node_standalone schema must also exist in this database.
workingdir= Path (for Microsoft Windows, use back slashes, for Linux, use forward slashes) to a temporary processing location on disk., e.g.: C:\Temp\WorkDir or /tmp/migration/work. The installer will attempt to create this folder if it cannot be found.
psqldir= Optional: path (using standard Microsoft Windows back slashes) to psql.exe file. By default psql.exe provided in CAST Imaging Core is used when no value is provided for this option.
backup= Determines whether you want to backup the CAST Imaging v3 control_panel schema (analysis_node and admin_center in older releases) before the v2 data is migrated in. By default this is set to Yes, set to No to skip this backup.
backupdir= Determines the path (for Microsoft Windows, use back slashes, for Linux, use forward slashes) to a local folder where the schema backups generated by the backup= option are stored. E.g.: C:\temp\backups or /tmp/migration/cssbackups.
usehttps=
Available in ≥ 1.0.2-funcrel

Set this to yes if you have configured HTTPS on your target CAST Imaging v3 installation. By default this is set to No.
validationreport=
Available in ≥ 1.1.0-funcrel

Sets the path for the validation report which is generated each time the batch is run.
restoretriplets=
Available in ≥ 1.2.0-funcrel

Set to Yes by default. Restores the backed-up application schemas from CAST Console V2 on to the PostgreSQL instance defined in CAST Imaging V3. This option (set to Yes) is mandatory when migrating to CAST Imaging V3 installed on Kubernetes, since CAST Imaging V3 cannot reach the CAST Console v2 PostgreSQL instance from inside the Kubernetes cluster.
copysources=
Available in ≥ 1.2.0-funcrel

Set to Yes by default. Restores the backed-up contents of the CAST Console V2 source folder location. Note: if this option is set to Yes, a source folder location must be defined in Console v3 settings (see Source Folder Location) and you must have also set copysources=Yes in the backup.conf file configured in Step 1 - Backup your data. Setting the option to No will not restore any backed up source code.
copyextensions=
Available in ≥ 1.2.0-funcrel

Set to Yes by default. Restores backed up CAST Console V2 extensions present in the output ZIP. Note:* if this option is set to Yes, you must have also set copyextensions=Yes in the backup.conf file configured in Step 1 - Backup your data. Setting the option to No will not restore any backed up extensions.
cssmapfile= Commented by default. Works in conjunction with the restoretriplets= option. Defines a specific configuration file called cssmappings.conf (located at the root of the migration tool when unzipped) which defines various rules about how the restored application schemas should be distributed amongst the available PostgreSQL instances defined in the CAST Imaging V3 installation. Recommended for use if you have defined more than one PostgreSQL instance in CAST Imaging V3 (see Database Connection List) and want to define how the application schemas are restored. Leaving the option uncommented will use the internal algorithm and an attempt will be made to match V2 database instances with V3 database instances.

Container options

These options define options used when migrating specifically to a containerized platform on Linux (Docker/Podman/Kubernetes):

Option Description migration.conf migration_linux.conf
containerplatform= Choose one of docker (default), podman, kubernetes according to your target CAST Imaging V3 deployment.
kub_mapping_port_css=, kub_mapping_port_eureka=, kub_mapping_port_node=, kub_mapping_port_viewer=, kub_mapping_port_gateway= Commented by default. In order to access the CAST Imaging services inside the Kubernetes cluster, the migration tool will need to open some temporary ports on the host machine (the machine running the tool) and will therefore map these temporary ports to the CAST Imaging V3 services. These ports have the default values shown in the configuration file and they ALL must be available. If some are not available, modify the configuration to choose another port.
namespace= Must be defined where containerplatform=kubernetes. Set by default to castk8s-migv3-ns.

Step 3 - Run the migration

To run the migration:

  • Connect to your chosen CAST Imaging v3 machine, depending on the migration options you have configured in the migration.conf / migration_linux.conf file.
  • Depending on your target infrastructure:
    • On Microsoft Windows, open a brand new CMD window (do NOT re-use any existing CMD windows that you may have used to perform other actions) with elevated permissions (right click, Run as administrator) and navigate to the root of the unzipped migration tool extension.
    • On Linux for Docker/Podman/Kubernetes, navigate to the root of the unzipped migration tool extension in terminal.
  • Execute the following command to set the password for the database user defined by the option css_user= in the migration.conf / migration_linux.conf file (otherwise you will be prompted to enter this during the migration):
Microsoft Windows
SET CSSPASSWORD=CastAIP

Linux
$ export CSSPASSWORD=CastAIP
  • Now execute the script file provided at the root of the unzipped migration tool extension with the option reportonly:
Microsoft Windows
Cast_Imaging_V3_Migration.bat reportonly

Linux
$ ./Cast_Imaging_V3_Migration.sh reportonly
  • This will run the migration in test mode only: no migration actions will be performed, instead checks are performed and a report will be generated and output to the path defined by the option validationreport= in the migration.conf / migration_linux.conf file. The report contains information about each application and its suitability for migration and you should check it before proceeding. See Compatibility/validation reports for more information.

  • If all checks have passed you can now proceed with the “real” migration by running:
Microsoft Windows
Cast_Imaging_V3_Migration.bat

Linux
$ ./Cast_Imaging_V3_Migration.sh

Step 4 - Check the migration log

On completion, check the log file (defined by the option log= in the migration.conf / migration_linux.conf file).

Step 5 - Check CAST Imaging v3

Connect to CAST Imaging v3 and login with a user that has the default Admin profile or a custom profile with the Administrator role - see User Permissions. Check that all your applications are visible in CAST Imaging v3.

Successfully migrated applications will show the following:

The status Migration in process in the Application landing page - you can still view their results if required by clicking the status, but you will be informed that to finalize the migration, you will need to complete additional steps - see What’s next?:

  • For an application that has “imaging-viewer” results (i.e. data in the Neo4j database):

  • For an application that has no “imaging-viewer” results:

In addition, a banner in the Application analysis configuration - Overview panel informing you about the need to perform Step 3 - Perform the application schema update and re-analysis in CAST Imaging v3 - note that some features in this panel will be disabled until this step is fully completed.

Step 6 - Check the migration report

As part of the migration process, a status report will be generated and stored on disk in text format: this report will contain key information regarding the migration status, details about each migrated application, the technologies they contain, the extensions that require an update, and advice about what to do next. This report must be consulted BEFORE you proceed with Step 3 - Application update and re-analysis as it will tell you whether you should complete this step or not.

The migration report is located at the root of the unzipped migration tool extension (along side the Cast_Imaging_V3_Migration.bat / Cast_Imaging_V3_Migration.sh file), called MigrationReport.csv. The report contains the following information:

Column name Description
MIGRATED APPLICATION This column lists the name of each application that has been migrated during the process. It provides a clear overview of which applications were processed and migrated successfully.
STATUS This column shows the status of the migration for each application. The possible values for the STATUS column are:
  • ALL_GOOD: Application migrated to CAST Imaging V3 - all technologies of your application are supported. Next Action: Everything is fine. Upgrade your application to Imaging Core 8.4. No need to rescan.
  • IMPOSSIBLE_RESCAN: Application migrated to CAST Imaging V3 - none of its technologies are supported yet. Next Action: None of the technologies in your source code are supported yet and therefore it is not possible to upgrade and rescan your application. Once a technology is supported, you will be able to upgrade your application, and rescan your source code.
  • NEED_RESCAN: Application migrated to CAST Imaging V3 - all technologies of your application are supported. Next Action: Upgrade your application to Imaging Core 8.4 then rescan and analyze your source code to complete the migration.
  • POSSIBLE_RESCAN_WITH_UNSUPPORTED_TECHNOLOGIES: Application migrated to CAST Imaging V3 - some technologies are not supported yet. Next Action: You can upgrade the application to Imaging Core 8.4, then rescan and analyze the source code to complete the migration. Note that for technologies that are not supported yet, the corresponding results will be removed.
YOUR NEXT ACTION This column provides instructions or recommendations (explained above) for the next steps you should take for each migrated application. It aligns with the STATUS column and highlights any necessary actions, such as upgrading the application, rescanning, or addressing unsupported technologies.
NON SUPPORTED TECHNOLOGIES This column lists any technologies or features used by the application that are not supported in CAST Imaging v3. It will help you identify any technologies that might need special attention or alternative solutions after migration.
EXTENSIONS THAT WILL BE UPDATED AFTER RESCAN This column shows any extensions that will be updated to the latest compatible release after a subsequent rescan of the application.

Example report for hypothetical applications that fall into each STATUS category described previously:

MIGRATED APPLICATION STATUS YOUR NEXT ACTION NON SUPPORTED TECHNOLOGIES EXTENSIONS THAT WILL BE UPDATED AFTER RESCAN
App1 Application migrated to CAST Imaging V3 - all technologies of your application are supported. Everything is fine. Upgrade your application to Imaging Core 8.4. No need to rescan.
App2 Application migrated to CAST Imaging V3 - none of its technologies are supported yet. None of the technologies in your source code are supported yet and therefore it is not possible to upgrade and rescan your application. Once a technology is supported, you will be able to upgrade your application, and rescan your source code. PowerBuilder
App3 Application migrated to CAST Imaging V3 - all technologies of your application are supported. Upgrade your application to Imaging Core 8.4 then rescan and analyze your source code to complete the migration. com.castsoftware.jee
com.castfotware.dotnet
App4 Application migrated to CAST Imaging V3 - some technologies are not supported yet. You can upgrade the application to Imaging Core 8.4, then rescan and analyze the source code to complete the migration. Note that for technologies that are not supported yet, the corresponding results will be removed. Power Builder
Visual Basic

What’s next?

You must now perform the application update and re-scan as described in Step 3 - Perform the application update and re-scan in CAST Imaging v3.