Repository Versioning

The Uniface Repository is versioned to ensure that development object definitions cannot be corrupted with data that comes from an incompatible version of the Repository, or when a dictionary is opened with an incompatible IDE version. The Repository version is determined by the delivered IDE resources, which are always required to start the IDE or perform an import.

This has a number of consequences:

  • When importing definitions from an older Repository, the Repository version is checked and if possible, the data is automatically migrated to the new version. If the definitions comes from a Repository older than Uniface 9.6, or newer than the current version, the data cannot be imported.
  • When executing the IDE with a command line switch that will read (or write) the Repository, such as a compiler switch (/all, /cpt, and so on) or the import switch (/imp), the dictionary and the IDE should be of the same version. If versions are different, the action will fail with an error (-1) and a message will be written in the transcript window or log file. The messages instructs you to start the Uniface IDE interactively to automatically migrate the data or get details about the Repository version mismatch.
  • It is not possible to use the import facilities /imp and $ude("import") to import data created by the data conversion (copy) facilities such as /cpy and $ude("copy"). For more information, see Export and Import Facilities.