Upgrading Mixpost Pro to v5 from v4
Always back up your database before starting the upgrade. If something goes wrong, you will need it to restore your previous state.
This guide walks you through upgrading Mixpost Pro from v4 to v5. Choose the path that matches your installation method: Docker or PHP (manual / Laravel package).
Prerequisites
Complete these steps before starting the upgrade, regardless of your installation method.
1. Preserve the default queue name
v5 changes the default queue name. To keep your existing jobs running, add this to your .env file:
MIXPOST_QUEUE_DEFAULT=default
Fresh v5 installs can skip this variable — it only applies when upgrading from v4.
2. Enable the Business Profile Performance API
Only required if you use Google Business Profile. v5 uses a new API for analytics.
- Open the Google Cloud Console and select your project.
- Go to APIs & Services > Library.
- Search for Business Profile Performance API and click Enable.
Upgrade Using Docker
- Navigate to the folder containing your
docker-compose.yml. - Run the following commands:
# Pull the latest version
docker compose pull
# Stop and remove the old container
docker compose down
# Start a new container
docker compose up -d
If something goes wrong, revert to the v4 image tag (inovector/mixpost-pro-team:v4) in your docker-compose.yml, restore your database backup, and run docker compose up -d again.
- Re-authorize social accounts — Go to each workspace, open the Accounts page, and re-authenticate every account so analytics data imports correctly.
Upgrade in a PHP Environment
Choose your installation type below.
Manual Installation (PHP)
If you installed Mixpost Pro using the manual installation method, use the automatic upgrade script:
curl -fsSL https://raw.githubusercontent.com/inovector/MixpostProTeamApp/main/scripts/upgrade/upgrade_v5.sh | bash
The script handles dependency updates, migrations, asset publishing, and cache clearing.
After the script completes, re-authorize all social accounts — go to each workspace, open the Accounts page, and re-authenticate every account.
Laravel Package
If Mixpost Pro is installed within an existing Laravel application, follow these steps.
Mixpost Pro v5 requires Laravel 12 or 13. If your application runs Laravel 10 or 11, upgrade Laravel first before proceeding.
Step 1. Update dependencies
composer require inovector/mixpost-pro-team "^5.0" -W
Step 2. Run database migrations
v5 includes significant database changes. Copy the migration file and run it:
cp vendor/inovector/mixpost-pro-team/database/migrations-upgrade/2026_04_01_123148_upgrade_mixpost_v5.php database/migrations/
php artisan migrate
Step 3. Publish assets
php artisan mixpost:publish-assets --force=true
Step 4. Update config
If you previously published the Mixpost config file, re-publish it:
php artisan vendor:publish --tag=mixpost-config --force
Step 5. Update Horizon configuration
You must complete this step or scheduled posts, analytics imports, and media downloads will stop working.
v5 introduces a new queue layout with four queues (publish-post, mixpost-analytics, mixpost-media, and default) and a helper class that generates Horizon supervisors automatically.
Previously, everything went through the default queue (plus a mixpost-heavy supervisor on publish-post). If your Horizon supervisors don't listen on the new queues, those jobs will be orphaned.
Follow these steps to update your Horizon configuration:
a. Open config/horizon.php and remove the old mixpost-heavy supervisor block and any custom supervisor-1 that processed Mixpost jobs.
b. Replace your defaults and environments blocks:
use Inovector\Mixpost\Horizon;
return [
// ... standard Horizon settings (domain, path, waits, trim, metrics, memory_limit, etc.) ...
'defaults' => Horizon::supervisors(),
'environments' => [
'production' => Horizon::supervisors(),
'local' => Horizon::supervisors(),
],
];
c. (Recommended) Pin your VPS tier in .env to prevent auto-detection from picking the wrong value during config:cache (e.g., when your CI machine has different RAM than production):
MIXPOST_HORIZON_TIER=growth
Available tiers: starter, basic, growth, scale. See the Horizon configuration guide for full tier details, the Horizon installation guide for preset setup, and the environment variables reference for all MIXPOST_HORIZON_* and MIXPOST_QUEUE_* options.
d. Verify the resolved tier and supervisor layout:
php artisan mixpost:horizon-tier
Step 6. Clear the cache
php artisan route:clear
php artisan view:clear
php artisan mixpost:clear-services-cache
php artisan mixpost:clear-settings-cache
Step 7. Optimize application
php artisan optimize
Step 8. Restart Reverb
Only required if reverb is your BROADCAST_DRIVER. Skip this step otherwise.
php artisan reverb:restart
Step 9. Terminate the Horizon process
php artisan horizon:terminate
Step 10. Re-authorize social accounts
Go to each workspace, open the Accounts page, and re-authenticate every connected account to ensure analytics data is imported correctly.