Upgrading a Site
Prerequisite
- 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.
Upgrade Methods
Remote Dashboard Update
- Navigate to Dashboard > System and Settings > Update Concrete.
- Download updates directly.
- Apply updates from the root
updates/
directory.
Manual Dashboard Update
- 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+)
- Download core from Concrete CMS download page.
- Replace the
concrete
directory in web root. - Empty
updates
directory. - Delete
application/config/update.php
. - Replace
composer.json
andcomposer.lock
(if pre-8.2.0). - Visit your site; Concrete will run required database migrations.
Command Line Upgrade (Version 8+)
- Download and unzip the core.
- SSH into server, navigate to web directory.
- Enable Maintenance Mode:
./concrete/bin/concrete5 c5:config -g set concrete.maintenance_mode true
. - Replace
concrete
directory. - 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 forconcrete5/core
incomposer.json
or using thecomposer 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
inapplication/config/
. - Add:
<?php
return array(
'updates' => array(
'enable_permissions_protection' => false
)
);
- Remove after upgrade completion.