Transfer of 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:

  1. On Sitefinity CMS initialization (SystemManager.Initialize()), additional logic checks whether sfmodulevrsn table is empty. 
    If the folder is empty:
  2. SystemConfig.ApplicationModules are saved in UpgradeConfig.ApplicationModules.
  3. Version and error message for each module in SystemConfig.ApplicationModules are removed.
  4. 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.

Increase your Sitefinity skills by signing up for our free trainings. Get Sitefinity-certified at Progress Education Community to boost your credentials.

Get started with Integration Hub | Sitefinity Cloud | Sitefinity SaaS

This free lesson teaches administrators, marketers, and other business professionals how to use the Integration hub service to create automated workflows between Sitefinity and other business systems.

Web Security for Sitefinity Administrators

This free lesson teaches administrators the basics about protecting yor Sitefinity instance and its sites from external threats. Configure HTTPS, SSL, allow lists for trusted sites, and cookie security, among others.

Foundations of Sitefinity ASP.NET Core Development

The free on-demand video course teaches developers how to use Sitefinity .NET Core and leverage its decoupled architecture and new way of coding against the platform.

Was this article helpful?