Updates Since 3.3.0
Total CMS includes a built-in update system that checks for new versions and applies them with minimal downtime.
How Updates Work
Section titled “How Updates Work”- Total CMS periodically checks the license server for new versions (cached for 24 hours)
- When an update is available, a notification appears in the admin dashboard
- You can apply the update with one click or via the CLI
- During the update, the site briefly enters maintenance mode
- The previous version is backed up for rollback if needed
Updates only replace the application files (tcms/). Your content in tcms-data/ is never touched.
Checking for Updates
Section titled “Checking for Updates”Dashboard
Section titled “Dashboard”Go to Utilities > Update Manager to see your current version and check for available updates. Click “Check for Updates” to force a fresh check.
# Check for available updatestcms update:check
# JSON output for scriptingtcms update:check --jsonApplying Updates
Section titled “Applying Updates”Dashboard
Section titled “Dashboard”- Go to Utilities > Update Manager
- Review the available version, severity, and changelog
- Click “Update to X.X.X”
- Confirm the update
- Wait for the update to complete — the page reloads automatically
# Apply the update (interactive confirmation)tcms update:apply
# Skip confirmationtcms update:apply --force
# JSON outputtcms update:apply --jsonUpdate Process
Section titled “Update Process”When an update is applied:
- The update zip is downloaded from the update server
- The zip is verified as a valid archive
- The site enters maintenance mode — visitors see a “Updating…” page
- The current application directory is backed up (e.g.,
tcms.backup-3.2.2-20260410-143022/) - The new files are extracted into place
- All caches are cleared
- Maintenance mode is disabled
- The update is logged to
tcms-data/.system/updates.log
The entire process typically takes a few seconds.
Maintenance Mode
Section titled “Maintenance Mode”During an update, non-admin visitors see a static “Updating Total CMS” page with a 503 status code. The page auto-refreshes after 10 seconds.
Admin routes continue to work during maintenance so the update action can complete.
Rollback
Section titled “Rollback”If an update causes issues, you can roll back to the previous version:
# Roll back to the previous versiontcms update:rollback
# Skip confirmationtcms update:rollback --forceRollback restores the backup directory that was created during the update. Only the most recent backup is available.
Manual Rollback
Section titled “Manual Rollback”If the CLI isn’t working after a failed update, you can manually swap directories:
# From the parent directory of your tcms installationmv tcms tcms-failedmv tcms.backup-3.2.2-20260410-143022 tcmsphp tcms/resources/bin/tcms cache:clearVersion Severity
Section titled “Version Severity”Updates are classified by severity:
- Patch (e.g., 3.2.1 → 3.2.2) — Bug fixes and minor improvements. Safe to apply immediately.
- Minor (e.g., 3.2.x → 3.3.0) — New features and enhancements. Review the changelog before applying.
- Major (e.g., 3.x → 4.0) — Significant changes that may require attention. Read the upgrade guide.
Troubleshooting
Section titled “Troubleshooting”“Already up to date” — The update check is cached for 24 hours. Use tcms update:check to force a fresh check from the CLI.
Update download fails — Verify the server can make outbound HTTPS connections to license.totalcms.co. Check firewall rules and DNS resolution.
Update fails mid-process — The previous version is automatically backed up before the swap. Use tcms update:rollback or manually restore the backup directory.
Site stuck in maintenance mode — The maintenance flag is at cache/maintenance.flag. Delete it manually: rm cache/maintenance.flag
Permission errors during update — The PHP process needs write access to the application directory to perform the swap. Check file ownership and permissions.