Skip to main content

Upgrading Mixpost Pro to v5 from v4

Backup your database first

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
tip

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.

  1. Open the Google Cloud Console and select your project.
  2. Go to APIs & Services > Library.
  3. Search for Business Profile Performance API and click Enable.

Upgrade Using Docker​

  1. Navigate to the folder containing your docker-compose.yml.
  2. 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
Rolling back

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.

  1. 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.

Laravel 12+ required

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​

Breaking change

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.

Queue names changed

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 optimize:clear --except cache
php artisan mixpost:clear-services-cache
php artisan mixpost:clear-settings-cache

Step 7. Optimize application​

php artisan optimize --except cache

Step 8. Restart Reverb​

info

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.