Compatibility and contract versions
Every YTCC version knows the versions of the formats and databases it can work with. These numbers are called contract versions. When a project, a database or a backup comes from another YTCC version, YTCC compares its version with its own and either uses it, upgrades it or refuses it. For where YTCC shows its own version, see Which version you are reading.
Where to read the versions
- Settings › About on the home page lists Product version, Installation and the contract versions: Control API, Configuration schema, Project registry schema, History schema, Project format, Page format, Driver API and Messaging API. When the components of the installation report different versions, it shows Component versions do not match and the names of the versions concerned. The same About window opens in the screen editor, on the runtime screen and in the configuration editor; it also lists the versions of the components and has Copy information (see Application settings).
scada-manager versionprints the product version, the installation, the control API and the contract versions.scada-manager version --jsonprints the same as JSON, with the fieldsproduct_version,install_id,control_api,install_dir,contractsandprojects.install_idandinstall_dirarenullfor a standalone installation.projectslists each project withslug,db_nameandhist_db_name.
Contract versions
The values are those of the version these docs describe.
| Contract | In About | Value | What it versions |
|---|---|---|---|
config_schema | Configuration schema | 77 | The project database: drivers, devices, signals, alarms, areas and zones |
registry_schema | Project registry schema | 7 | The registry database that lists the projects of an installation |
hist_schema | History schema | 1.0 | The history database of a project |
project_format | Project format | 1 | The project file with the pages, symbols, popups and layouts |
page_format | Page format | 1 | Each page in the project file |
format_version | — | 1 | Project backups and project packages |
control_api | Control API | 1 | The control interface of scada-manager |
driver_api | Driver API | 1 | The interface between YTCC and its drivers |
nats_api | Messaging API | 1 | The messages between the YTCC services |
Which version opens what
Project database and registry
The programs and the database must have the same schema version. Connecting never upgrades a database.
| The database is | What happens | What to do |
|---|---|---|
| Older than the programs | The configuration editor shows Project database is incompatible with this version with the command to run; the project's drivers do not start. | The setup program upgrades the databases when it upgrades YTCC. Otherwise stop the project and use Upgrade… on the home page, or run scada-manager migrate <project>, or scada-manager migrate --registry for the registry. See Databases and schema upgrade. |
| Newer than the programs | The same message, with update all YTCC programs together. | Use the YTCC version that upgraded the database. |
After migrate, older YTCC versions can no longer use the database. Take a backup before you upgrade; see
Upgrade to a new version and roll back.
History database
| The history database is | What happens |
|---|---|
| Same major version, older minor version | The history writer upgrades it itself. |
| Same major version, newer minor version | The history writer keeps writing; the columns that the newer version added stay empty. |
| Different major version | The history writer does not start, does not change the database and is not restarted. Use the YTCC version that wrote this history. |
migrate does not change history databases.
Project and page files
| The file is | What happens |
|---|---|
| Older, or without a format version | It opens normally. On the first save, YTCC keeps a copy of the old project file in the project's backup folder and then saves it in the current format. |
| Newer, but marked as readable by this version | It opens, but saving is refused: This project was saved with a newer YTCC version; update to save it. |
| Newer and not readable by this version | It does not open: This project was saved with a newer YTCC version; update to open it. |
| A page in a newer page format | The page opens read-only: This page was saved with a newer YTCC version and is read-only here. Update YTCC to edit it. When the whole project is saved, the page is written back unchanged. |
Backups and project packages
This applies to scada-manager import and to the Import project window of the home page.
| The backup or package is | What happens |
|---|---|
| Made by the same or an older version | It is imported. An older database inside it is restored and then upgraded to the current schema; the Import project window shows upgraded to {0} on import. |
| Made by a newer version | The Import project window shows newer than this server and The package was made with a newer YTCC version than this server; update YTCC first, and the import is refused. |
Of a newer format_version, or with a newer database schema | The import is refused. Update YTCC first. |
See Backup and restore.
One project, one version
A project runs in one YTCC version at a time. Starting it in a second version opens Project is running in another version; see Start, stop and restart a project.