Here is some data around upgrade/downgrade rules: A bit developer terminology but should give better clarity:
====
ZD upgrade and downgrade rules are as following:
1. About ZD upgrade:
a. ZD didn’t support any version upgrade to any version, ZD only support upgrade to some version from other version which is defined in “controller/ac/REQUIRE_VERSIONS” in this new branch.
(Generally, ZD support two version upgrade. For example, 9.1/9.2 can upgrade to 9.3, 9.2/9.3 can upgrade to 9.4, 9.3/9.4 can upgrade to 9.5. but some small version can’t support. )
For example in 9.3.1.0, it define: 9.1.0.0 9.1.0.3 9.1.1.0 9.1.2.0 9.2.0.0 9.3.0.0 in “controller/ac/REQUIRE_VERSIONS”, so only those version can supported to upgrade to 9.3.1.0.
b. When upgrade, ZD will do the migration process.
If ZD can match the whole old version to current version in ZD’s etc/migration. It will do the process in it. Otherwise, it will match the front two version number.
For example, if we upgrade 9.1.0.3 to 9.3.1.0, ZD will do migration in 9.1.0.3-9.3.1.0/db_upg, if we didn’t build 9.1.0.3-9.3.1.0 in ZD’s image, ZD will do migration in 9.1.0.0-9.3.0.0/db_upg.
2. About ZD downgrade:
a. If ZD upgrade from one old version to new version, then downgrade to the old version, ZD can use the old version’s configuration or set factory.
b. If ZD downgrade to other version, ZD only can chose set factory, and now ZD can downgrade to any version, and no limit.