With {{UBIK}} Server version 4.0, 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.0, 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 -->
== 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 a new, empty Project.
* After loading all the meta definitions is finished, save the Transport Container to the Project.
* 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 a new, empty database for your {{UBIK}} 4.0 Environment. It has to be on the same server as your old database (or a copy thereof).* Open Make sure your SmartStudio version 4has all the plugins required for your project.0* 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.
* Connect to the new (and empty) {{UBIK}} 4.0 Environment.=> SmartStudio now asks you to upgrade the empty database to version 4.0. 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 ==
* Open the Transport Container with all the 3.7 meta definitions from the Project.
* Merge & Save the Transport Container to the Environment.
=> All the meta definitions should be available in the new {{UBIK}} 4.0 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 ==
* Open the "Instance Data Transfer Wizard" using the "Environment" menu.
* Follow the wizard's instructions until the end.
=> The wizard copies all the instance data from the old 3.7 Environment to the new {{UBIK}} 4Environment. {{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 or https://thecodesaysitall.blogspot.com/2012/04/long-running-systemtransactions.html }} [[Category:How-To|Transfer Data from 3.7 Environmentto 4.0]][[Category:Install|Transfer Data from 3.7 to 4.0]][[Category:Installing|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.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]]
== Maintain languages ==
* For most View related methods, the parameter "bool sorted" does not exist anymore; it can be removed.
* The method View.Children now doesn't have the parameters "bool sorted" and "bool fullBranchSync" anymore; they can be removed.
* There is a new method View.ChildrenForBranchSync with the same parameters as View.Children (equivalent to having the "fullBranchSync" parameter on true). If you customized View.Children, this one should be customized as well.
* 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.
[[Category:How-To|Transfer Data from 3.7 to 4.0]]
[[Category:Install|Transfer Data from 3.7 to 4.0]]
[[Category:Installing|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]]
== Optional: Maintain system object customizing ==
[[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.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]]