Difference between revisions of "HowTo:Transfer Data from UBIK 3 to UBIK 4"
(→Make sure all languages are configured) |
|||
(22 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | With {{UBIK}} Server version 4 | + | With {{UBIK}} Server version 4, much has changed on database level. We had to sacrifice direct downward compatibility with respect to older database versions in order to gain new possibilities (see [[Dynamic_Live_Mode]]). |
− | In order to upgrade a {{UBIK}} Environment from version 3.7 to version 4 | + | In order to upgrade a {{UBIK}} Environment from version 3.7 to version 4, it is necessary to create a new database and to transfer the data from the old database to the new one. Here's how. |
<!-- DO NOT REMOVE THIS -->{{Template:HowTo/Begin}}<!-- DO NOT REMOVE THIS --> | <!-- DO NOT REMOVE THIS -->{{Template:HowTo/Begin}}<!-- DO NOT REMOVE THIS --> | ||
Line 9: | Line 9: | ||
== Save all meta definitions to a SmartStudio Project == | == Save all meta definitions to a SmartStudio Project == | ||
+ | * Make sure the database is updated to 3.7.3 (recent fixes in uids require a database update to this version) | ||
+ | * If you don't need the CUI plugin, delete all meta classes related to CUI from your 3.7 database before continuing. The same is true for any other structure or content you don't want transferred. | ||
+ | * Make sure your SmartStudio version 3.7 has all the plugins required for your project. | ||
* Open SmartStudio version 3.7. | * Open SmartStudio version 3.7. | ||
* Open a new, empty Project. | * Open a new, empty Project. | ||
Line 17: | Line 20: | ||
* After loading all the meta definitions is finished, save the Transport Container to the Project. | * After loading all the meta definitions is finished, save the Transport Container to the Project. | ||
* Save the Project to the file system. | * Save the Project to the file system. | ||
+ | |||
+ | {{Hint|Make sure to use the newest SmartStudio versions from the release portal (also for 3.7)!}} | ||
== Create an empty {{UBIK}} 4.0 database == | == Create an empty {{UBIK}} 4.0 database == | ||
− | * Create a new, empty database for your {{UBIK}} 4 | + | * Create a new, empty database for your {{UBIK}} 4 Environment. It has to be on the same server as your old database (or a copy thereof). |
− | * | + | * Make sure your SmartStudio version 4 has all the plugins required for your project. |
+ | * If you haven't removed the CUI meta classes from your 3.7 database before loading the meta classes into the SmartStudio project, you also need the CUI plugin. | ||
+ | * Open SmartStudio version 4. | ||
* Open the previously created Project. | * Open the previously created Project. | ||
− | * Connect to the new (and empty) {{UBIK}} 4 | + | * Connect to the new (and empty) {{UBIK}} 4 Environment. |
− | => SmartStudio now asks you to upgrade the empty database to version 4 | + | => SmartStudio now asks you to upgrade the empty database to version 4. Confirm the upgrade dialog. {{UBIK}} now creates all the basic system definitions in the previously empty database. |
+ | |||
+ | {{Hint|You might get an MSDTC related error. In that case you need to enable the MSDTC: https://learn.microsoft.com/en-us/biztalk/adapters-and-accelerators/adapter-sql/configure-msdtc-on-sql-server-and-adapter-client}} | ||
== Transfer the previously copied meta definitions == | == Transfer the previously copied meta definitions == | ||
* Open the Transport Container with all the 3.7 meta definitions from the Project. | * Open the Transport Container with all the 3.7 meta definitions from the Project. | ||
* Merge & Save the Transport Container to the Environment. | * Merge & Save the Transport Container to the Environment. | ||
− | => All the meta definitions should be available in the new {{UBIK}} 4 | + | => All the meta definitions should be available in the new {{UBIK}} 4 Environment. Now we just have to transfer the instance data. |
+ | |||
+ | {{Hint|Known issue: SmartStudio assumes the relation data meta class of a relation has the same name. If the relation was renamed (but not the data meta class), a new data meta class with the same name will be created for the relation. In that case, you might have to set the correct data meta class after the transfer (all meta classes are transferred, just the reference might be wrong). The new data meta class with the same name as the relation can be deleted then.}} | ||
+ | |||
+ | {{Hint|Known issue: SmartStudio doesn't know about the Meta Property's "Serialize" property, which adds an additional column for file references. After migrating the meta definitions to your {{UBIK}} 4 Environment, please set this property to true manually if needed. }} | ||
+ | |||
+ | == Remove obsolete MetaClasses == | ||
+ | * Some old meta classes have been transferred, but we can just delete them: | ||
+ | ** System.Main.SYSTEMSETTINGS | ||
== Make sure all languages are configured == | == Make sure all languages are configured == | ||
* Open the Bulk Editor for the Language Meta Class (using SmartStudio or regular Studio) in your new 4.0 Environment. | * Open the Bulk Editor for the Language Meta Class (using SmartStudio or regular Studio) in your new 4.0 Environment. | ||
− | * Enter all required languages. | + | * Enter all required languages (if you had more than 2). |
* It is only important that there are enough languages, you can modify them afterwards. | * It is only important that there are enough languages, you can modify them afterwards. | ||
=> Now, there should be as many languages as there were in the old 3.7 Environment. | => Now, there should be as many languages as there were in the old 3.7 Environment. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Transfer all instance data == | == Transfer all instance data == | ||
* Open the "Instance Data Transfer Wizard" using the "Environment" menu. | * Open the "Instance Data Transfer Wizard" using the "Environment" menu. | ||
* Follow the wizard's instructions until the end. | * Follow the wizard's instructions until the end. | ||
− | => The wizard copies all the instance data from the old 3.7 Environment to the new 4 | + | => The wizard copies all the instance data from the old 3.7 Environment to the new {{UBIK}} 4 Environment. |
+ | |||
+ | {{Hint|If the transfer keeps failing after some time, the maximum transaction timeout configured on your machine might be the issue: https://stackoverflow.com/a/21274884 }} | ||
== Maintain languages == | == Maintain languages == | ||
Line 52: | Line 65: | ||
* Remove all language objects you don't need and make sure the details (index, primary language) are set correctly. | * Remove all language objects you don't need and make sure the details (index, primary language) are set correctly. | ||
=> Now, all translations should be displayed correctly; please check. | => Now, all translations should be displayed correctly; please check. | ||
+ | |||
+ | == Optional: Maintain customizing == | ||
+ | |||
+ | In case your customizing doesn't compile even after removing the obsolete meta classes, this might help. | ||
+ | |||
+ | * Copy your custom code library from your old DB to the new one. | ||
+ | * If a class cannot be found, please make sure it doesn't have the namespace "System". Alternatively, you can use "Sys." as a prefix in the custom code to find the class. | ||
+ | |||
+ | Also, some method signatures have changed, so we have to adapt custom code if these methods are used: | ||
+ | |||
+ | * For most View related methods, the parameter "bool sorted" does not exist anymore; it can be removed. | ||
+ | * The UBIKClassList does not derive from List anymore. If you're using it as List in your custom code, you have to adapt this, using UBIKClassList instead. | ||
+ | |||
+ | If you're stuck, please ask a developer. | ||
+ | |||
+ | == Optional: Maintain system object customizing == | ||
+ | Most likely, you won't need to do anything here, but if you changed system meta objects in your old 3.7 Environment, additional adaptions might be necessary. | ||
+ | * In the unlikely event that there were custom changes to system objects like the NAMEDBASECLASS, please check whether anything is missing. | ||
+ | * Custom property values or relations must be amended manually. | ||
+ | * Custom code and icon can be restored by linking to the correct Display Data object, which was transferred. | ||
+ | * Ask a developer if you need help. | ||
<!-- DO NOT REMOVE THIS -->{{Template:HowTo/End}}<!-- DO NOT REMOVE THIS --> | <!-- DO NOT REMOVE THIS -->{{Template:HowTo/End}}<!-- DO NOT REMOVE THIS --> | ||
Line 60: | Line 94: | ||
[[Category:Server|Transfer Data from 3.7 to 4.0]] | [[Category:Server|Transfer Data from 3.7 to 4.0]] | ||
[[Category:Version 4.0|Transfer Data from 3.7 to 4.0]] | [[Category:Version 4.0|Transfer Data from 3.7 to 4.0]] | ||
+ | [[Category:Version 4.2|Transfer Data from 3.7 to 4.0]] | ||
+ | [[Category:Version 4.3|Transfer Data from 3.7 to 4.0]] | ||
+ | [[Category:Version 4.4|Transfer Data from 3.7 to 4.0]] |
Latest revision as of 14:29, 5 September 2024
With UBIK® Server version 4, much has changed on database level. We had to sacrifice direct downward compatibility with respect to older database versions in order to gain new possibilities (see Dynamic Live Mode).
In order to upgrade a UBIK® Environment from version 3.7 to version 4, it is necessary to create a new database and to transfer the data from the old database to the new one. Here's how.