Upgrading a Site

Improvements?

Let us know by posting here.

Prerequisites

  • Backup: Always back up your database and files before upgrading. There's no downgrade process for Concrete CMS; restore from backup if issues arise.
  • Check Compatibility: Ensure add-ons, themes, and custom code are compatible with the new version.

 If the upgrade process breaks a site, restore from a backup made prior to upgrading. Upgrades should be tested on a copy of a website before updating the production website. Pay particular attention to version upgrades which might run into issues or require extra steps by reading the release notes, checking for upgrade tutorials, and looking for reported issues in the community forums or issue tracker.

Upgrade Methods

Remote Dashboard Update

Note: update availability using this method may be delayed compared to downloading directly from the Concrete CMS download page.

  • Navigate to Dashboard > System and Settings > Update Concrete.
  • Download updates directly.
  • Apply updates from the root updates/ directory.

Manual Dashboard Update

Note: this method is similar to the previous method; the only difference is the manual download and placement of files.

  • Download core from Concrete CMS download page.
  • Retain only the concrete directory from the unzipped file.
  • Move the directory to updates/.
  • Go to Dashboard > System and Settings > Update Concrete to apply.

Replacing Original Concrete Directory (Version 8+)

Note: this method minimizes used disk space but requires more technical skills.

  • Download core from Concrete CMS download page.
  • Delete the concrete directory in web root and replace it with the one downloaded in the previous step.
  • Delete application/config/update.php.
  • Empty updates directory.
  • Replace composer.json and composer.lock (if pre-8.2.0).
  • Visit your site; Concrete will run required database migrations and show maintenance mode to other users while the upgrade is in process.

Command Line Upgrade (Version 8+)

Note: this method is recommended when the upgrade process might take a long time or memory such as when upgrading to a new major version or when upgrading a large site.

  • Download the core from the Concrete CMS download page and unzip.
  • SSH into server, navigate to web directory.
  • Enable Maintenance Mode: ./concrete/bin/concrete5 c5:config -g set concrete.maintenance_mode true.
  • Delete the concrete directory and replace it with the one downloaded in the previous step.
  • Run ./concrete/bin/concrete5 c5:update.
  • Disable Maintenance Mode: ./concrete/bin/concrete5 c5:config -g set concrete.maintenance_mode false.

Composer-based Concrete sites:

For a site set up using Composer using the Composer Based Skeleton for Concrete sites, the following steps can be used:

  • Update composer.{json,lock} by either manually updating the version constraints for concrete5/core in composer.json or using the composer require command, e.g.: composer require concrete5/core ^9.
  • Run composer update.
  • Visit your site; Concrete will run required database migrations.

Emergency Steps (If unable to log in post-upgrade)

  • Create/edit concrete.php in application/config/.
  • Add:
    <?php
    return array(
        'updates' => array(
            'enable_permissions_protection' => false
        )
    );
  • Remove after upgrade completion.