Upgrades in Continuous delivery
Overview
Continuous delivery ensures smooth upgrades without manual work and with minimum downtime of your Live environment.
The following diagram demonstrates how to upgrade your project in Continuous delivery:

Procedure
- Upgrade the Development environment
- Download and restore the database from your Live to your Development environment.
- Change the connection string to point to the restored database.
- Upgrade the Development project.
For more information, see Upgrade.
- Upgrade the Test environment
- Download the project from the Test environment to the Development environment.
- Turn off Read-only mode of configurations.
- Upgrade the Test project
- Download and restore the database from your Live to your Test environment.
- Upload the upgrade project to the Test environment.
- Change the connection string to point to the restored database.
- Turn on Read-only mode of configurations.
- Run and test the upgraded project.
- If the tests fail, go back to your Development environment, fix the problem, and return to Step
- Upgrade the Live environment
- If tests pass, download the project from the Live environment.
- Turn off Read-only mode of configurations.
- Upgrade the Live project.
- Turn on Read-only mode of configurations.
- Upload the upgraded project from your Development environment to your Live environment.
RESULT: All of your environments are upgraded successfully.
Transfer configurations during upgrade
When you upgrade your Sitefinity CMS project on your local development machine, you can easily transfer the upgraded .config
files to the next environments from the continuous delivery process. You do not need to upgrade or merge the .config
files manually. This is possible, because the versions of Sitefinity CMS and all application modules are no longer stored in the SystemConfig.config
on the file system, but in the database.
The SystemConfig.config
file stores the information about the modules state, but does not store their version or the error message data. These are stored in the database in a dedicated table – sfmodulevrsn
.
Database table sfmodulevrsn
transfers and stores the following:
- The global Sitefinity CMS version
Sitefinity CMS versions 8.2 and below keep this information in SystemConfig.Build
and SystemConfig.PreviousBuild
.
- The static modules’s version and error message
Sitefinity CMS versions 8.2 and below keep this information in SystemConfig.ApplicationModules
for each static module.
Table sfmodulevrsn
stores modulename
, version
, previousversion
, and err_msg
.
Sitefinity CMS also uses a new UpgradeConfig.config
file that keeps any data, which is deleted from other existing configurations, but is needed for the upgrade of the next environment in the continuous delivery process.
Process
The following happens when you upgrade your project on your local development machine:
- On Sitefinity CMS initialization (
SystemManager.Initialize()
), additional logic checks whether sfmodulevrsn
table is empty.
If the folder is empty:
SystemConfig.ApplicationModules
are saved in UpgradeConfig.ApplicationModules
.
- Version and error message for each module in
SystemConfig.ApplicationModules
are removed.
- Table
sfmodulevrsn
is initialized with the current modules state.
NOTE: Modules which are uninstalled on the initial (development) continuous delivery environment are deactivated on the next environments. No uninstall logic is executed. Because the error message for each module is stored in the database, if there is an error for a given module on one of the NLB nodes, the module is deactivated on all other nodes.