Although Zim Technology has always made the best efforts to keep compatibility between versions, technical evolution is inevitable which leads to building bridges between one existing version to the next introduced version.
A brief history of Zim Technology and its migration possibilities:
Zim versions up to Zim 9.00: these versions may include Zim 4.x, Zim 7.x, Zim 8.20, Zim 8.50, and Zim 9.00. They are distributed by another company and are solely based on 32-bits platforms. According to its proper documentation, old versions can be migrated to newer versions using their own migration tools. If no technical evolution is required, such Zim databases can stay in Zim 9.00 for the time needed or until Zim 9.00 is available;
Zim 9.10 and Zim 9.50 (and upward): these versions are far more modern releases using a true 64-bit platform being produced and distributed by Zim-X Corporation, for Windows, Linux INTEL, Linux ARM, and Androids. The migration from Zim 9.10 to Zim 9.50 is transparent and automatic which only requires running the latest version on top of the previous one. However, the migration to Zim 9.50 from earlier versions like Zim 9.00 does require a more detailed step-by-step process, described below, due to their binary incompatibility and due to the more evolved capabilities of Zim 9.50.
Conventions
. OLD DATABASE: it’s the existing Zim database requiring migration;
. NEW DATABASE: it’s a Zim 9.50 ready to accept the migration from the old database or the one after such migration.
Warning
The migration process is destructive thus requiring you to backup your old database. For safety reasons, you can make more than one backup. Before the backup, make sure that no users are accessing the database and that ZimServer (if applicable) is no longer running. You must have killed ZimServer with the option “-k” to guarantee data integrity.
A) Migrate your Old Database to at Least Zim 8.50
If your database is not in versions Zim 8.50 or Zim 9.00, you will need to migrate to one of them (whichever is available to you), preferably Zim 9.00. This is a requirement because the differences between very old versions of Zim and Zim 8.5 or Zim 9.00 are big, big enough to make the conversion to Zim 9.50 impossible.
To perform this migration, you will need to follow the instructions provided by these Zim versions and the documentation provided by the distributor.
B) Export Data and Database Definitions From the Old Database
Once your old database is running either Zim 8.50 or Zim 9.00, you will export all database definitions and all data from the old database using the tools and utilities from the corresponding Zim version:
Start ZimServer;
Start a ZimQTC session to get the Zim prompt;
From the prompt, run “ZOMENABLE” to access the ZOM tools;
From the prompt, run “ZOMEXPORT *” to export all database definitions;
From the prompt, run “ZOMDATASAVE *” to export all existing data;
Kill ZimServer using the option “-k”.
To be on the safe side, back up your old database again to guarantee that files created in this process are saved.
C) Clean the Old Database
Certain files need to be deleted (removed) from the old database to make room for the new one:
Remove all files with the name “ZIMxxxx” where “xxxx” ranges from “0000” to “9999”;
Remove the operating system directories identified by “ZIMxxxx.WS”;
Remove the operating system directories identified by “yyyyy” where “yyyyy” ranges from “00001” to “99999”;
Remove the operating system directories named “DCRT” and “DPSRT”.
D) Install ZIM 9.50
Using the ZIM:X Full Installer, perform its installation on your computer following the installer guidelines.
E) Start ZimServer
After Zim 9.50 was installed, start ZimServer.
F) Create the New Database
Using the administrative tool ZimAdmin, you are going to create (initialize) the new database. From this point on, this database is going to be referred to as the “New Database”.
Run ZimAdmin;
Right-click on “Zim Servers”, select “Add Server…” and then click OK on the Add Server dialog box;
Click on the just added server (usually “localhost:6002”) and click OK on the Login Form. A (+) will appear on the left of the server;
Expand the (+) and right-click on “Databases” to “Create a Database”;
Provide a database name, a database path (it MUST be one you just cleaned), and a database number. Click “Create”;
Once you get a confirmation message, you are ready to go to the next step.
G) Import the New Database Definitions
This step will import all database definitions to the new database:
Start ZIMQTC on the new database;
Run “ZOMENABLE”;
Run “ZOMIMPORT” to import all database definitions.
Should errors arise during the import, carefully inspect these errors and decide:
The errors need to be corrected immediately: In this case, you will have to restore the database backup, correct the errors and then repeat steps B, C, E, F, G, and H;
If the errors are minor or could be ignored for the moment, proceed to the next step.
H) Import all Database Data
Run the following steps after importing the database definitions:
Copy (save) the operating system directory “ZOMSAVING” to “ZOMSAVING.SAVE” which is located in the database. This copy is important; otherwise, the database data will not be imported;
Run “ZOMDATASAVE *” to create the structure to load the data. It will process zero records for all entity sets;
Remove the operating system directory “ZOMSAVING”;
Copy back the saved directory “ZOMSAVING.SAVE” to “ZOMSAVING”;
Run “ZOMDATALOAD *” to import the database data.
Warning: Zim versions up to Zim 9.00 weren’t able to correctly export data. In particular, the presence of new lines in the middle of text fields would produce errors and omissions. These errors need to be investigated and, probably, the new lines fixed before exporting the data in step E.
Another potential error is the inability to recognize entity sets per user which leads to import errors. There is no sense in exporting and exporting data from entity sets per user and these errors can be ignored safely.
I) Final Checks
The migration process to ZIM 9.50 is now completed. You may still perform the following tasks:
Assigns a keyword to the selected object(s). If the keyword is already assigned, this assignment is ignored. If “!” is specified, the keyword assignment is removed for the selected object(s).
;p <property> [!]
Set the specified user-designated property for the selected object(s). If “!” is indicated, the specified property is reset for the selected object(s).
Comments
This service has no special function of its own. ZOMSet selects the specified objects and sets any properties according to the given processing options. ZOMSet is convenient for setting object properties without doing any further processing on those objects.
Examples
The following command sets the object “Customers” to be locked.
ZOMSet Customers ;p l
The following command sets all objects that are compiled to be compilable.
ZOMSet +p ca ;p c
The following command sets the DataSave property for all objects that have the Data property set.
ZOMSet +p da ;p ds
The following example deletes the keyword “Sales_System” from all objects keyworded by the keyword “Sales_System.”
Imports dictionary descriptions of objects from documents.
Syntax
ZOMImport [<option>…]
Options
;f <format>
Specifies the format in which that the Object Dictionary specifications are to be imported. There are several available formats:
Z50
To import Z50 format, omit the ;f option. This is the default import / export format, and is recommended for exchanging definitions between ZOM enabled environments. Z50 files have file names that end in “.z50”.
Z45
This format is suitable for importing definitions created using ZOM Version 4.5 which was released with the Developers’ Release, 4.5, of Zim for Windows. It can be used to import definitions created by this previous Windows release. Z45 files have file names that end in “.z45”.
Z41
This imports definitions exported by versions of ZOM prior to 4.5. Z41 files have file names that end in “.z41”.
DT4
This imports definitions compatible with ZimSAVE and ZimLOAD. It is useful for exchanging objects between ZOM and older versions of Zim. DT4 files have file names that end in “.dt4”.
OEF
This imports output which is compatible with the Object Exchange Format, a generic object exchange format definition which is designed for integration with other development tools. OEF files have file names that end in “.oef”.
;t sh
Specifies that the target of the import operation is the Shadow Object Dictionary and not the Object Dictionary. See ZOMDiff for more information on comparing different versions of object definitions.
Comments
This command checks the set of objects to be imported over for locked objects prior to executing. If there are locked objects to be affected, the command issues an error and exits. An object is considered to be locked if it is locked itself, or is in a locked directory. For information about setting and clearing locks, refer to ZOMSet.
This command touches any objects imported once its action has completed. This results in the object’s status and dependency information being updated. For more information, refer to ZOMTouch.
Examples
The following command imports the objects contained in the Z50 format files.
ZOMImport
The following command imports the objects in DT4 format.
An action to be taken in regards to an activation key. It can be one of-a Activates the ZIM product based on the information provided by the subsequent parameters.-c Checks the activation key.-i Lists information relevant to this activation key, such as validity, product, version, and so on.-l Lists information about all currently activated and licensed ZIM products.-m Indicates the platform to which this activation is applied. Possible values are 1 – Windows 2 – SCO 6 and UnixWare 3 – AIX 4 – HP 5 – Solaris 6 – Linux-p Indicates the ZIM product to which this activation key applies. Possible values are 1 – ZIM PDP 2 – ZIM ODBC Driver 3 – Server Access Modules (SAM) 4 – ZIM Web 5 – ZIM Backup Server
serial number
A five-digit number corresponding to the serial number of the ZIM product being activated. This number is provided by ZIM when you purchase the product.
activation key
String of 16 characters corresponding to the activation key of the ZIM product being activated (hyphens are optional). This key is provided by ZIM when you purchase the product.
company name
String of 8 to 50 characters corresponding to the name of the company that activates the ZIM product. This name is provided by ZIM when you purchase the product.
Comments
The ZIMACTIV utility performs various operations in regards to the current activation key or in regards to the currently activated and licensed ZIM products. Specifically, the ‘-a’ option activates the ZIM product being installed, enabling the product to run.
The ZIMACTIV utility is invoked from the operating system prompt. To be run, ZIMACTIV requires at least the action parameter; if not present, you are prompted to enter it. You are prompted for any other required parameter as well.
The company name must be entered in quotation marks if blank spaces are part of the name. Lower and upper case, as well spaces, are ignored in this parameter; the company name cannot exceed of 50 characters.
The ZIMACTIV utility has a graphical version named ZIMACTIW that runs only on Windows. The ZIMACTIV utility runs on both Windows and UNIX.
Example
zimactiv –a 12345 ABCD-ABCD-ABCD-ABCD ”My Company Name”
The name of the database table on the database server, if different than the EntitySet name. RemoteName is normally used when there is a naming incompatibility between Zim and the database server.
Remarks
The name of the database table on the database server