Campaign Manager application updates are distributed through GitHub Releases. Treat an upgrade as a production deployment change: back up first, read the release notes, preserve environment/user data, and verify after the update.
- Read the release notes for the version you are moving to.
- Confirm the new release is intended for your current deployment/profile.
- Back up the application database.
- Back up
.env. - Back up user-generated/uploaded files and any storage content not reproducible from the release package.
- Record the currently running version.
- If the installation is mission-critical, rehearse the update on a staging copy first.
Use the official release asset:
The normal production package is:
campaign-manager.zip
Do not substitute GitHub's automatically generated source-code archive for the release asset.
Because releases can change over time, follow release-specific instructions first. A conservative Laravel deployment pattern is:
- place the application in maintenance mode where appropriate;
- deploy/extract the new release without overwriting your
.envor user-generated data blindly; - restore/preserve the production
.envvalues; - ensure
storage/andbootstrap/cache/retain correct ownership/permissions; - run any database migration command explicitly required by the release;
- clear stale framework caches;
- restart long-running queue workers if asynchronous queues are in use;
- return the application to service;
- verify login, dashboards, campaign scope/geography, uploads, queues, scheduler and mail.
Common Laravel maintenance commands that may be used during a documented release deployment include:
php artisan down
php artisan migrate --force
php artisan optimize:clear
php artisan queue:restart
php artisan upDo not run a command merely because it appears above. Use it when it applies to your deployment and the release notes. For example, queue:restart is relevant only if long-running queue workers are being used.
Be especially careful with:
.env
storage/
publicly linked user-upload directories
server-specific web-server configuration
cron/process-manager configuration
The release package should replace application release files, not erase site-specific secrets or campaign data.
Take a database backup before running migrations.
If a release requires migrations, execute them from the application directory using the release's documented command. On a production Laravel deployment this is commonly:
php artisan migrate --forceNever test an unfamiliar migration workflow first against the only production database copy.
Before starting, keep:
- the previous working application release;
- the pre-upgrade database backup;
- the previous
.envbackup; - user-upload/storage backups;
- a record of deployment commands used.
A rollback may require both restoring the prior application files and restoring the matching database backup if the newer release introduced incompatible schema changes.
Verify:
- reported application version
- login and role access
- campaign scope and geography
- dashboards
- member/supporter workflows used by your team
- uploads/media
- queue processing where configured
- scheduler where configured
- mail/SMS integrations where enabled
- server logs for new errors
Migration/Upgrade Assistance and Priority Technical Support are optional paid Govware services. Community users can still manage their own updates independently.