|
At this time, there is no support for the big integer/timezone database migration scripts for H2. These migration scripts are detailed for other supported databases. If you have an existing H2 database and require the timezone correction, you must migrate to a supported database such as PostgreSQL or MS SQL. If your application will function without the timezone correction, you can upgrade to the latest ThingWorx version on H2. Note that you will skip the Set the ThingWorx Server Timezone section as noted.
|
ThingWorx 9.1 is only supported on RHEL 8.2. |
Download and extract the ThingWorx content in a folder where the current user has write permissions. Write permissions are required as the update scripts create some files in the process. |
If you must upgrade your Java version, perform the ThingWorx upgrade before upgrading Java. |
If you fail to do so, the upgrade will fail and you will have to deploy the older version again (if schema updates were made, you must roll back/restore database) and add missing index values or remove the custom indexes from the data table and then perform upgrade. |
The steps in this section are only required if you are upgrading ThingWorx with InfluxDB 1.7.x (for ThingWorx 8.5.x or 9.0.x) to InfluxDB 1.8.x (For ThingWorx 9.1.x or 9.2.x). |
The validation.properties file is created upon startup of ThingWorx. If you want to retain any changes you have made, save the file outside of the ThingworxStorage directory and then proceed with removing the esapi directory. Upon startup, ThingWorx will recreate the file and you can add your custom regexes back into the validation.properties file that was automatically generated. Reference this topic for additional information. |
Only step 1 in this section is required for all upgrades. Perform the steps in the rest of this section if you are upgrading from ThingWorx 8.4.x or 8.5.x --> 9.0.x, 9.1.x, or 9.2.x. Skip the steps in the rest of this section if you are upgrading from ThingWorx 9.0.x or 9.1.x --> 9.1.x or 9.2.x |
You do not need to run the thingworxPostgresSchemaUpdate9.0-to-9.1.sh script because there are no schema updates in 9.1. Although the script is included in the update folder for completeness, it is empty and is intended only for users with automated upgrade processes. |
The steps in the rest of this section should only be performed if you are upgrading from ThingWorx 8.4.x or 8.5.x to 9.0.x, 9.1.x, or 9.2.x. Skip the steps in the rest of this section if you are upgrading from ThingWorx 9.0.x to 9.1.x or 9.2.x. |
If you are already running ThingWorx in UTC, you still need to run the migration for the big integer changes, but the sourceTZ and targetTZ parameters (available in some of the scripts in the steps below) can both be supplied the value of UTC. |
When specifying timezones for the data migration scripts below, the specified timezone names must exactly match one of the formal names displayed by the pg_timezone_names() script. |
Before running the script, open the script in a text editor to ensure its default environment values (such as server, port, time zones, etc.) are correct and sufficient for your environment. If any default values defined within the script do not seem appropriate for your environment, override the default values when running the script by specifying one or more command line arguments. |
Usage: thingworxPostgresModelTablesDataUpdate.sh [-h <server>] [-p <port>] [-d <Thingworx database name>] [-u <thingworx database username>] [-r <password>] [-m <azure managed instance name>] [-sourceTZ <source timezone>] [-targetTZ <target timezone>] Example: thingworxPostgresModelTablesDataUpdate.sh -sourceTZ US/Eastern -targetTZ Etc/UTC |
For performance reasons, these scripts do not actually create a copy of the original data in these tables. Instead, these scripts rename these existing tables from “<original-table-name>” to “<original-table-name>_backup”. This circumvents the potentially time-consuming process of actually copying the data. Once these existing tables are renamed (thus becoming the backup tables), new tables are created with the original names. These new tables are empty and serve the same purpose as the original tables (because they have the same names as the original tables). These new tables will get populated with migrated data in later steps. |
Before running the script, open the script in a text editor to ensure its default environment values (such as server, port, time zones, etc.) are correct and sufficient for your environment. If any default values defined within the script do not seem appropriate for your environment, override the default values when running the script by specifying one or more command line arguments. |
Usage: thingworxPostgresDataTableDataUpdate.sh [-h <server>] [-p <port>] [-d <thingworx database name>] [-u <thingworx database username>] [-r <password>] [-m <azure managed instance name>] [-sourceTZ <source timezone>] [-targetTZ <target timezone>] [-chunkSize <chunk size>] Example: thingworxPostgresDataTableDataUpdate.sh -sourceTZ US/Eastern -targetTZ Etc/UTC |
Before running the script, open the script in a text editor to ensure its default environment values (such as server, port, time zones, etc.) are correct and sufficient for your environment. If any default values defined within the script do not seem appropriate for your environment, override the default values when running the script by specifying one or more command line arguments. |
Usages: thingworxPostgresStreamDataUpdate.sh [-h <server>] [-p <port>] [-d <thingworx database name>] [-u <thingworx database username>] [-r <password>] [-m <azure managed instance name>] [-sourceTZ <source timezone>] [-targetTZ <target timezone>] [-chunkSize <chunk size>] thingworxPostgresValueStreamDataUpdate.sh [-h <server>] [-p <port>] [-d <thingworx database name>] [-u <thingworx database username>] [-r <password>] [-m <azure managed instance name>] [-sourceTZ <source timezone>] [-targetTZ <target timezone>] [-chunkSize <chunk size>] Examples: thingworxPostgresStreamDataUpdate.sh -sourceTZ US/Eastern -targetTZ Etc/UTC -chunkSize 5000 thingworxPostgresValueStreamDataUpdate.sh -sourceTZ US/Eastern -targetTZ Etc/UTC -chunkSize 5000 |
Although this script performs some cleanup of temporary database objects created during the upgrade process, this script does *not* delete any of the backup tables created in the previous steps, nor does it modify any data within those backup tables. This is intentional, and ensures that data cannot be accidentally deleted. If you want to delete these backup tables, then they must be deleted manually. |
The following commands must be run against the ThingWorx database. |
Only step 1 in this section is required for all upgrades. Perform the steps in the rest of this section if you are upgrading from ThingWorx 8.4.x or 8.5.x --> 9.0.x, 9.1.x, or 9.2.x. Skip the steps in the rest of this section if you are upgrading from ThingWorx 9.0.x or 9.1.x --> 9.1.x or 9.2.x |
You do not need to run the thingworxMssqlSchemaUpdate9.0-to-9.1.sh script because there were no schema changes in 9.1. Although the script is included in the update folder for completeness, it is empty and is intended only for users with automated upgrade processes. |
The steps in the rest of this section should only be performed if you are upgrading from ThingWorx 8.4.x or 8.5.x to 9.0.x, 9.1.x, or 9.2.x. Skip the steps in the rest of this section if you are upgrading from ThingWorx 9.0.x to 9.1.x or 9.2.x. |
If you are already running ThingWorx in UTC, you still need to run the migration for the big integer changes, but the sourceTZ and targetTZ parameters (available in some of the scripts in the steps below) can both be supplied the value of UTC. |
Before running the script, open the script in a text editor to ensure its default environment values (such as server, port, time zones, etc.) are correct and sufficient for your environment. If any default values defined within the script do not seem appropriate for your environment, override the default values when running the script by specifying one or more command line arguments. |
Usage: thingworxMssqlModelTablesDataUpdate.sh [-h <server>] [-i <server-instance>] [-p <port>] [-r <password>] [-l <login-name>] [-d <thingworx-database-name>] [-sourceTZ <source-timezone>] [-targetTZ <target-timezone>] Example: thingworxMssqlModelTablesDataUpdate.sh -sourceTZ "Eastern Standard Time" -targetTZ UTC |
For performance reasons, these scripts do not actually create a copy of the original data in these tables. Instead, these scripts rename these existing tables from “<original-table-name>” to “<original-table-name>_backup”. This circumvents the potentially time-consuming process of actually copying the data. Once these existing tables are renamed (thus becoming the backup tables), new tables are created with the original names. These new tables are empty and serve the same purpose as the original tables (because they have the same names as the original tables). These new tables will get populated with migrated data in later steps. |
Before running the script, open the script in a text editor to ensure its default environment values (such as server, port, time zones, etc.) are correct and sufficient for your environment. If any default values defined within the script do not seem appropriate for your environment, override the default values when running the script by specifying one or more command line arguments. |
Usage: thingworxMssqlDataTableDataUpdate.sh [-h <server>] [-i <server-instance>] [-p <port>] [-r <password>] [-l <login-name>] [-d <thingworx-database-name>] [-sourceTZ <source-timezone>] [-targetTZ <target-timezone>] [-chunkSize <chunk-size>] Example: thingworxMssqlDataTableDataUpdate.sh -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
Before running the script, open the script in a text editor to ensure its default environment values (such as server, port, time zones, etc.) are correct and sufficient for your environment. If any default values defined within the script do not seem appropriate for your environment, override the default values when running the script by specifying one or more command line arguments. |
Usages: thingworxMssqlStreamDataUpdate.sh [-h <server>] [-i <server-instance>] [-p <port>] [-r <password>] [-l <login-name>] [-d <thingworx-database-name>] [-sourceTZ <source-timezone>] [-targetTZ <target-timezone>] [-chunkSize <chunk-size>] thingworxMssqlValueStreamDataUpdate.sh [-h <server>] [-i <server-instance>] [-p <port>] [-r <password>] [-l <login-name>] [-d <thingworx-database-name>] [-sourceTZ <source-timezone>] [-targetTZ <target-timezone>] [-chunkSize <chunk-size>] Examples: thingworxMssqlStreamDataUpdate.sh -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 thingworxMssqlValueStreamDataUpdate.sh -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
Although this script performs some cleanup of temporary database objects created during the upgrade process, this script does *not* delete any of the backup tables created in the previous steps, nor does it modify any data within those backup tables. This is intentional, and ensures that data cannot be accidentally deleted. If you want to delete these backup tables, then they must be deleted manually. |
Only step 1 in this section is required for all upgrades. Perform the steps in the rest of this section if you are upgrading from ThingWorx 8.4.x or 8.5.x --> 9.0.x, 9.1.x, or 9.2.x. Skip the steps in the rest of this section if you are upgrading from ThingWorx 9.0.x or 9.1.x --> 9.1.x or 9.2.x |
The number of permissions that exist in the platform may affect the time to complete the upgrade. More permissions may increase the upgrade completion time. |
You do not need to run the thingworxAzureSchemaUpdate9.0-to-9.1.sh script because there are no schema updates in 9.1. Although the script is included in the update folder for completeness, it is empty and is intended only for users with automated upgrade processes. |
Usage: ./thingworxAzureSchemaUpdate8.4-to-8.5.sh -d ^database^ -h ^server^ -l ^username^ [-i ^serverInstance^] [-p ^port^] [-o ^option^] Example: ./thingworxAzureSchemaUpdate8.4-to-8.5.sh -d thingworx -h test.sqldatabase.net -l sqlAdmin |
If you are already running ThingWorx in UTC, you still need to run the migration for the big integer changes, but the sourceTZ and targetTZ parameters (available in some of the scripts in the steps below) can both be supplied the value of UTC. |
Before running the script, open the script in a text editor to ensure its default environment values (such as server, port, time zones, etc.) are correct and sufficient for your environment. If any default values defined within the script do not seem appropriate for your environment, override the default values when running the script by specifying one or more command line arguments. |
Usage: thingworxAzureModelTablesDataUpdate.sh [-d database] [-h server] [-l loginname] [-i serverinstance] [-r password] [-p port] [-sourceTZ source-timezone] [-targetTZ target-timezone] [-chunkSize chunk-size] Example: thingworxAzureModelTablesDataUpdate.sh -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
For performance reasons, these scripts do not actually create a copy of the original data in these tables. Instead, these scripts rename these existing tables from “<original-table-name>” to “<original-table-name>_backup”. This circumvents the potentially time-consuming process of actually copying the data. Once these existing tables are renamed (thus becoming the backup tables), new tables are created with the original names. These new tables are empty and serve the same purpose as the original tables (because they have the same names as the original tables). These new tables will get populated with migrated data in later steps. |
The following expected warning displays when executing the data table script: Warning! The maximum key length for a clustered index is 900 bytes. The index 'data_table_indexes_pkey' has maximum length of 902 bytes. For some combination of large values, the insert/update operation will fail. |
Before running the script, open the script in a text editor to ensure its default environment values (such as server, port, time zones, etc.) are correct and sufficient for your environment. If any default values defined within the script do not seem appropriate for your environment, override the default values when running the script by specifying one or more command line arguments. |
Usage: thingworxAzureDataTableDataUpdate.sh [-d database] [-h server] [-l loginname] [-i serverinstance] [-r password] [-p port] [-sourceTZ source-timezone] [-targetTZ target-timezone] [-chunkSize chunk-size] Example: thingworxAzureDataTableDataUpdate.sh -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
Before running the script, open the script in a text editor to ensure its default environment values (such as server, port, time zones, etc.) are correct and sufficient for your environment. If any default values defined within the script do not seem appropriate for your environment, override the default values when running the script by specifying one or more command line arguments. |
Usages: thingworxAzureStreamDataUpdate.sh [-d database] [-h server] [-l loginname] [-i serverinstance] [-r password] [-p port] [-sourceTZ source-timezone] [-targetTZ target-timezone] [-chunkSize chunk-size] thingworxAzureValueStreamDataUpdate.sh [-d database] [-h server] [-l loginname] [-i serverinstance] [-r password] [-p port] [-sourceTZ source-timezone] [-targetTZ target-timezone] [-chunkSize chunk-size] Examples: thingworxAzureStreamDataUpdate.sh -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 thingworxAzureValueStreamDataUpdate.sh -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
Although this script performs some cleanup of temporary database objects created during the upgrade process, this script does *not* delete any of the backup tables created in the previous steps, nor does it modify any data within those backup tables. This is intentional, and ensures that data cannot be accidentally deleted. If you want to delete these backup tables, then they must be deleted manually. |
Java 11 is required for ThingWorx 9.2.0 and later. Refer to system requirements for details. |
The steps in this section are only required if you are upgrading ThingWorx with InfluxDB 1.7.x (for ThingWorx 8.5.x or 9.0.x) to InfluxDB 1.8.x (For ThingWorx 9.1.x or 9.2.x). |
Application Log Error | Resolution |
---|---|
Error in copying permissions: Problems migrating database | This migration error is seen for MSSQL upgrades and displays if there are any migrated service, property, or event names that have run time permissions configured and their name contains more than 256 characters. To fix this error, limit all service, property, and event names to less than 256 characters. |
[L: ERROR] [O: c.t.p.m.BaseReportingMigrator] [I: ] [U: SuperUser] [S: ] [T: localhost-startStop-1] Thing: <Name of Thing>, has a property which conflicts with one of the following system properties: isReporting,reportingLastChange,reportingLastEvaluation. Please refer to the ThingWorx Platform 8.4 documentation on how to resolve this problem. | As part of the Thing Presence feature added to ThingWorx platform 8.4, the following properties were added to the Reportable Thing Shape and are used as part of presence evaluation on the things that implement this shape: • isReporting • reportingLastChange • reportingLastEvaluation If one of the property names above previously existed on a Thing, Thing Template, or Thing Shape, the following errors will appear in the Application log when the platform starts up. To resolve this problem, the property in conflict on each affected entity must be removed and any associated entities updated to accommodate this change (for example, mashups or services). Without this update, the associated Things cannot display their reporting status properly and cannot be updated/saved. Once these entities are updated properly, the platform-specific reporting properties will be displayed and used in evaluating whether a device is connected and communicating. |
[L: ERROR] [O: c.t.p.m.BaseReportingMigrator] [I: ] [U: SuperUser] [S: ] [T: localhost-startStop-1] ThingTempate: <Name of ThingTemplate>, has a property which conflicts with one of the following system properties: isReporting,reportingLastChange,reportingLastEvaluation. Please refer to the ThingWorx Platform 8.4 documentation on how to resolve this problem. | |
[L: ERROR] [O: c.t.p.m.BaseReportingMigrator] [I: ] [U: SuperUser] [S: ] [T: localhost-startStop-1] ThingShape: <Name of ThingShape>, has a property which conflicts with one of the following system properties: isReporting,reportingLastChange,reportingLastEvaluation. Please refer to the ThingWorx Platform 8.4 documentation on how to resolve this problem. |