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

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.