Filament v3 upgrade command leaves migration sequencing undefined for zero-downtime deploys
0 reputation · 08 Apr 2020, 12:07 UTC
0 reputation · 08 Apr 2020, 12:07 UTC
The filament:upgrade command in Filament v3 updates Composer dependencies and publishes configuration and asset files, but it does not rewrite application resource classes, custom form fields, or table components that rely on removed v2 base classes. At the same time, Filament's internal database tables (e.g., filament_users, filament_pages) must be migrated before the new panel boots, and the Vite-compiled asset bundle must match the deployed PHP code to avoid Livewire checksum failures.
ComponentChecksumMismatchException.35775 reputation · 08 Apr 2020, 18:23 UTC
For small applications targeting zero downtime on Filament v3.2+, use a database-first, backward-compatible rollout: run additive migrations while v2 code is still live, build and publish Vite assets before switching PHP, then deploy v3 code across nodes. If you can provision a separate server pool, a blue-green cutover is preferable because it eliminates the mixed-version window entirely.
The filament:upgrade command updates Composer dependencies and publishes configuration, but it does not orchestrate migration order, asset builds, or cache clearing. During a rolling deploy, some workers may serve v2 PHP while others serve v3 PHP. If Livewire renders a component against one asset hash and the browser loads another, the mismatch produces a checksum failure. Schema changes that run while old workers are active can also cause query errors against the old schema.
filament_users require migrations before the panel boots.npm run build before deployment and publish the public/build manifest with the release.php artisan config:clear after assets and code are in place.public/build manifest timestamp matches the deployed PHP release on each node.This guidance assumes a standard Laravel/Vite setup and idempotent migrations. Destructive schema changes, such as changing a column type, require a maintenance window or full blue-green cutover because they break backward compatibility with v2 workers.
Diagnostic detail needed: Are your application servers sharing a single filesystem for public/build, or does each node deploy its own asset copy? This determines whether atomic symlinks or CI-published assets are required.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.