|
目前,H2 不支援大整數/時區資料庫移轉指令集。這些移轉指令集針對其他支援的資料庫提供詳細說明。如果目前使用的是 H2 資料庫,且需要時區修正,則必須移轉至支援的資料庫,例如 PostgreSQL 或 MS SQL。如果您的應用程式在未進行時區修正的情況下也能正常運作,您可在 H2 上升級至最新的 ThingWorx 版本。請注意,您將會跳過設定 ThingWorx 伺服器時區部份,如所述。
|
如果您必須升級 Java 版本,請在升級 Java 之前先執行 ThingWorx 升級。 |
如果您無法執行此操作,升級將會失敗,且您必須再次部署較舊版本 (如果進行了結構描述更新,您必須回復/還原資料庫),並新增遺失的索引值,或從資料表中移除自訂索引,然後再執行升級。 |
只有在您將 ThingWorx 的 InfluxDB 1.7.x (針對 ThingWorx 8.5.x 或 9.0.x) 升級至 InfluxDB 1.8.x (針對 ThingWorx 9.1.x 或 9.2.x) 時,才需要執行本節中的步驟。 |
validation.properties 檔案會在啟動 ThingWorx 時建立。如果您要保留所做的任何變更,請將檔案儲存在 ThingworxStorage 目錄外,然後繼續移除 esapi 目錄。在啟動時,ThingWorx 會重新建立該檔案,而且您可以將自訂 regex 新增回自動產生的 validation.properties 檔案中。 如需其他資訊,請參考此主題。 |
所有升級都只需要執行此部份中的步驟 1。 如果您要從 ThingWorx 8.4.x 或 8.5.x 升級 --> 9.0.x、9.1.x 或 9.2.x,請執行本節其餘部份的步驟。 如果您要從 ThingWorx 9.0.x 或 9.1.x 升級 --> 9.1.x 或 9.2.x,請跳過本節其餘部份的步驟。 |
您不需要執行 thingworxPostgresSchemaUpdate9.0-to-9.1.bat 指令集,因為 9.1 中沒有結構描述更新。儘管指令集因完整性的原因包含在 update 資料夾中,但它是空白的,且僅供要執行自動升級流程的使用者使用。 |
只有在您從 ThingWorx 8.4.x 或 8.5.x 升級至 9.0.x、9.1.x 或 9.2.x 時,才應執行本部份其餘內容中的步驟。如果您要從 ThingWorx 9.0.x 升級至 9.1.x 或 9.2.x,請跳過本節其餘部份中的步驟。 |
如果您已使用 UTC 執行 ThingWorx,您仍需要針對大整數變更執行移轉,但可同時為 sourceTZ 與 targetTZ 參數 (可在以下步驟中的某些指令集中找到) 提供 UTC 的值。 |
為以下資料移轉指令集指定時區時,指定的時區名稱必須與 pg_timezone_names() 指令集顯示的其中一個正式名稱完全相符。 |
在執行指令集之前,請在文字編輯器中開啟指令集,以確保其預設環境值 (例如伺服器、埠、時區等) 正確且足以用於您的環境。如果在指令集中定義的任何預設值看似不適合您的環境,請透過指定一或多個指令行引數來在執行指令集時覆寫預設值。 |
Usage: thingworxPostgresModelTablesDataUpdate.bat [-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^>] 範例: thingworxPostgresModelTablesDataUpdate.bat -sourceTZ US/Eastern -targetTZ Etc/UTC |
基於效能方面的原因,這些指令集實際上不會在這些表格中建立原始資料的副本。這些指令集會將這些現有表格從 "<original-table-name>" 重新命名為 "<original-table-name>_backup"。這樣會防止實際會複製資料的可能耗時流程執行。重新命名這些現有表格 (進而變成備份表) 之後,會以原始名稱建立新表格。這些新表格為空,且與原始表格的用途相同 (因為它們的名稱與原始表格相同)。這些新表格會在後面的步驟中填入移轉的資料。 |
在執行指令集之前,請在文字編輯器中開啟指令集,以確保其預設環境值 (例如伺服器、埠、時區等) 正確且足以用於您的環境。如果在指令集中定義的任何預設值看似不適合您的環境,請透過指定一或多個指令行引數來在執行指令集時覆寫預設值。 |
Usage: thingworxPostgresDataTableDataUpdate.bat [-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^>] 範例: thingworxPostgresDataTableDataUpdate.bat -sourceTZ US/Eastern -targetTZ Etc/UTC |
在執行指令集之前,請在文字編輯器中開啟指令集,以確保其預設環境值 (例如伺服器、埠、時區等) 正確且足以用於您的環境。如果在指令集中定義的任何預設值看似不適合您的環境,請透過指定一或多個指令行引數來在執行指令集時覆寫預設值。 |
使用方式: thingworxPostgresStreamDataUpdate.bat [-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.bat [-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^>] 範例: thingworxPostgresStreamDataUpdate.bat -sourceTz US/Eastern -targetTZ Etc/UTC -chunkSize 5000 thingworxPostgresValueStreamDataUpdate.bat -sourceTz US/Eastern -targetTZ Etc/UTC -chunkSize 5000 在啟動這兩個移轉指令集之後,請勿繼續進行下一個步驟,直到這些移轉指令集,以及資料表移轉指令集 (在上一個步驟中啟動) 皆已成功完成為止。 |
雖然此指令集會執行在升級流程期間建立之暫存資料庫物件的部份清理工作,但此指令集 *不會* 刪除在之前步驟中建立的任何備份表,也不會修改這些備份表中的任何資料。這是刻意的行為,可確保資料不會遭到意外刪除。如果您要刪除這些備份表,必須手動執行此操作。 |
必須針對 ThingWorx 資料庫執行下列指令。 |
所有升級都只需要執行此部份中的步驟 1。 如果您要從 ThingWorx 8.4.x 或 8.5.x 升級 --> 9.0.x、9.1.x 或 9.2.x,請執行本節其餘部份的步驟。 如果您要從 ThingWorx 9.0.x 或 9.1.x 升級 --> 9.1.x 或 9.2.x,請跳過本節其餘部份的步驟。 |
您不需要執行 thingworxMssqlSchemaUpdate9.0-to-9.1.bat 指令集,因為 9.1 中沒有結構描述變更。儘管指令集因完整性的原因包含在 update 資料夾中,但它是空白的,且僅供要執行自動升級流程的使用者使用。 |
只有在您從 ThingWorx 8.4.x 或 8.5.x 升級至 9.0.x、9.1.x 或 9.2.x 時,才應執行本部份其餘內容中的步驟。如果您要從 ThingWorx 9.0.x 升級至 9.1.x 或 9.2.x,請跳過本節其餘部份中的步驟。 |
如果您已使用 UTC 執行 ThingWorx,您仍需要針對大整數變更執行移轉,但可同時為 sourceTZ 與 targetTZ 參數 (可在以下步驟中的某些指令集中找到) 提供 UTC 的值。 |
在執行指令集之前,請在文字編輯器中開啟指令集,以確保其預設環境值 (例如伺服器、埠、時區等) 正確且足以用於您的環境。如果在指令集中定義的任何預設值看似不適合您的環境,請透過指定一或多個指令行引數來在執行指令集時覆寫預設值。 |
使用方式: thingworxMssqlModelTablesDataUpdate.bat [-h ^<server^>] [-i ^<server-instance^>] [-p ^<port^>] [-l ^<login-name^>] [-d ^<thingworx-database-name^>] [-r ^<password^>] [-sourceTZ ^<source-timezone^>] [-targetTZ ^<target-timezone^>] 範例: thingworxMssqlModelTablesDataUpdate.bat -sourceTZ "Eastern Standard Time" -targetTZ UTC |
基於效能方面的原因,這些指令集實際上不會在這些表格中建立原始資料的副本。這些指令集會將這些現有表格從 "<original-table-name>" 重新命名為 "<original-table-name>_backup"。這樣會防止實際會複製資料的可能耗時流程執行。重新命名這些現有表格 (進而變成備份表) 之後,會以原始名稱建立新表格。這些新表格為空,且與原始表格的用途相同 (因為它們的名稱與原始表格相同)。這些新表格會在後面的步驟中填入移轉的資料。 |
當執行以下資料表指令集時,會顯示下列預期警告: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. |
在執行指令集之前,請在文字編輯器中開啟指令集,以確保其預設環境值 (例如伺服器、埠、時區等) 正確且足以用於您的環境。如果在指令集中定義的任何預設值看似不適合您的環境,請透過指定一或多個指令行引數來在執行指令集時覆寫預設值。 |
使用方式: thingworxMssqlDataTableDataUpdate.bat [-h ^<server^>] [-i ^<server-instance^>] [-p ^<port^>] [-l ^<login-name^>] [-d ^<thingworx-database-name^>] [-r ^<password^>] [-sourceTZ ^<source-timezone^>] [-targetTZ ^<target-timezone^>] [-chunkSize ^<chunk-size^>] 範例: thingworxMssqlDataTableDataUpdate.bat -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
在執行指令集之前,請在文字編輯器中開啟指令集,以確保其預設環境值 (例如伺服器、埠、時區等) 正確且足以用於您的環境。如果在指令集中定義的任何預設值看似不適合您的環境,請透過指定一或多個指令行引數來在執行指令集時覆寫預設值。 |
使用方式: thingworxMssqlStreamDataUpdate.bat [-h ^<server^>] [-i ^<server-instance^>] [-p ^<port^>] [-l ^<login-name^>] [-d ^<thingworx-database-name^>] [-r ^<password^>] [-sourceTZ ^<source-timezone^>] [-targetTZ ^<target-timezone^>] [-chunkSize ^<chunk-size^>] thingworxMssqlValueStreamDataUpdate.bat [-h ^<server^>] [-i ^<server-instance^>] [-p ^<port^>] [-l ^<login-name^>] [-d ^<thingworx-database-name^>] [-r ^<password^>] [-sourceTZ ^<source-timezone^>] [-targetTZ ^<target-timezone^>] [-chunkSize ^<chunk-size^>] 範例: thingworxMssqlStreamDataUpdate.bat -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 thingworxMssqlValueStreamDataUpdate.bat -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
雖然此指令集會執行在升級流程期間建立之暫存資料庫物件的部份清理工作,但此指令集 *不會* 刪除在之前步驟中建立的任何備份表,也不會修改這些備份表中的任何資料。這是刻意的行為,可確保資料不會遭到意外刪除。如果您要刪除這些備份表,必須手動刪除。 |
所有升級都只需要執行此部份中的步驟 1 與步驟 2。 如果您要從 ThingWorx 8.4.x 或 8.5.x 升級 --> 9.0.x、9.1.x 或 9.2.x,請執行本節其餘部份的步驟。 如果您要從 ThingWorx 9.0.x 或 9.1.x 升級 --> 9.1.x 或 9.2.x,請跳過本節其餘部份的步驟。 |
存在於平台中的權限數可能會影響完成升級的時間。更多權限可能會增加完成升級所需的時間。 |
您不需要執行 thingworxAzureSchemaUpdate9.0-to-9.1.ps1 指令集,因為 9.1 中沒有結構描述更新。儘管指令集因完整性的原因包含在 update 資料夾中,但它是空白的,且僅供要執行自動升級流程的使用者使用。 |
使用方式: ./thingworxAzureSchemaUpdate8.4-to-8.5.ps1 -d ^database^ -h ^server^ -l ^username^ [-i ^serverInstance^] [-p ^port^] [-o ^option^] 範例: ./thingworxAzureSchemaUpdate8.4-to-8.5.ps1 -d thingworx -h test.sqldatabase.net -l sqlAdmin |
只有在您從 ThingWorx 8.4.x 或 8.5.x 升級至 9.0.x、9.1.x 或 9.2.x 時,才應執行本部份其餘內容中的步驟。如果您要從 ThingWorx 9.0.x 升級至 9.1.x 或 9.2.x,請跳過本節其餘部份中的步驟。 |
如果您已使用 UTC 執行 ThingWorx,您仍需要針對大整數變更執行移轉,但可同時為 sourceTZ 與 targetTZ 參數 (可在以下步驟中的某些指令集中找到) 提供 UTC 的值。 |
在執行指令集之前,請在文字編輯器中開啟指令集,以確保其預設環境值 (例如伺服器、埠、時區等) 正確且足以用於您的環境。如果在指令集中定義的任何預設值看似不適合您的環境,請透過指定一或多個指令行引數來在執行指令集時覆寫預設值。 |
使用方式: thingworxAzureModelTablesDataUpdate.bat [-h ^<server^>] [-i ^<server-instance^>] [-p ^<port^>] [-l ^<login-name^>] [-r ^<password^>] [-d ^<thingworx-database-name^>] [-sourceTZ ^<source-timezone^>] [-targetTZ ^<target-timezone^>] 範例: thingworxAzureModelTablesDataUpdate.bat -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
基於效能方面的原因,這些指令集實際上不會在這些表格中建立原始資料的副本。這些指令集會將這些現有表格從 "<original-table-name>" 重新命名為 "<original-table-name>_backup"。這樣會防止實際會複製資料的可能耗時流程執行。重新命名這些現有表格 (進而變成備份表) 之後,會以原始名稱建立新表格。這些新表格為空,且與原始表格的用途相同 (因為它們的名稱與原始表格相同)。這些新表格會在後面的步驟中填入移轉的資料。 |
當執行以下資料表指令集時,會顯示下列預期警告: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. |
在執行指令集之前,請在文字編輯器中開啟指令集,以確保其預設環境值 (例如伺服器、埠、時區等) 正確且足以用於您的環境。如果在指令集中定義的任何預設值看似不適合您的環境,請透過指定一或多個指令行引數來在執行指令集時覆寫預設值。 |
使用方式: thingworxAzureDataTableDataUpdate.bat [-h ^<server^>] [-i ^<server-instance^>] [-p ^<port^>] [-l ^<login-name^>] [-r ^<password^>] [-d ^<thingworx-database-name^>] [-sourceTZ ^<source-timezone^>] [-targetTZ ^<target-timezone^>] [-chunkSize ^<chunk-size^>] 範例: thingworxAzureDataTableDataUpdate.bat -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
在執行指令集之前,請在文字編輯器中開啟指令集,以確保其預設環境值 (例如伺服器、埠、時區等) 正確且足以用於您的環境。如果在指令集中定義的任何預設值看似不適合您的環境,請透過指定一或多個指令行引數來在執行指令集時覆寫預設值。 |
使用方式: thingworxAzureStreamDataUpdate.bat [-h ^<server^>] [-i ^<server-instance^>] [-p ^<port^>] [-l ^<login-name^>] [-r ^<password^>] [-d ^<thingworx-database-name^>] [-sourceTZ ^<source-timezone^>] [-targetTZ ^<target-timezone^>] [-chunkSize ^<chunk-size^> thingworxAzureValueStreamDataUpdate.bat [-h ^<server^>] [-i ^<server-instance^>] [-p ^<port^>] [-l ^<login-name^>] [-r ^<password^>] [-d ^<thingworx-database-name^>] [-sourceTZ ^<source-timezone^>] [-targetTZ ^<target-timezone^>] [-chunkSize ^<chunk-size^>] 範例: thingworxAzureStreamDataUpdate.bat -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 thingworxAzureValueStreamDataUpdate.bat -sourceTZ "Eastern Standard Time" -targetTZ UTC -chunkSize 5000 |
雖然此指令集會執行在升級流程期間建立之暫存資料庫物件的部份清理工作,但此指令集 *不會* 刪除在之前步驟中建立的任何備份表,也不會修改這些備份表中的任何資料。這是刻意的行為,可確保資料不會遭到意外刪除。如果您要刪除這些備份表,必須手動刪除。 |
ThingWorx 9.2.0 及更新版本需要 Java 11。如需詳細資訊,請參閱 系統需求。 |
只有在您將 ThingWorx 的 InfluxDB 1.7.x (針對 ThingWorx 8.5.x 或 9.0.x) 升級至 InfluxDB 1.8.x (針對 ThingWorx 9.1.x 或 9.2.x) 時,才需要執行本節中的步驟。 |
應用程式記錄檔錯誤 | 解決方案 |
---|---|
Error in copying permissions: Problems migrating database | MSSQL 升級時常見此移轉錯誤,並會顯示是否有配置了執行時間權限的任何已移轉服務、內容或事件名稱,且其名稱是否包含超過 256 個字元。欲修正此錯誤,請將所有服務、內容和事件名稱限制為少於 256 個字元。 |
[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. | 作為新增至 ThingWorx 平台 8.4 之「物件存在」功能的一部份,已將下列內容新增至「可報告的物形式」,並會將其作為實行此形式之物件存在評估的一部份使用: • isReporting • reportingLastChange • reportingLastEvaluation 如果上述其中一個內容名稱之前存在於物件、物範本或物形式中,當平台啟動時,會在應用程式記錄檔中顯示下列錯誤。欲解決此問題,必須移除每個受影響實體上發生衝突的內容,且任何關聯實體已更新來適應此變更 (例如「混搭」或「服務」)。若沒有此更新,關聯物件無法正確顯示其報告狀況,且無法更新/儲存。正確更新這些實體之後,會顯示平台特定的報告內容,並將其用於評估裝置是否已連線且正在進行通訊。 |
[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. |