Fully refactored major with zero dependencies outside CakePHP code.
Breaking Changes
- Phinx fully removed - The library no longer depends on Phinx. All functionality is now native to CakePHP Migrations.
- Requires CakePHP 5.3+
- Integer columns now default to signed - Use explicit
'signed' => falsefor unsigned columns - Unified migrations table - New
cake_migrationstable name (auto-detects legacyphinxlogfor BC)
New Features
- Seed tracking - Seeds now track execution state in
cake_seedstable, preventing accidental re-runs - Upsert operations -
insertOrUpdate()andinsertOrSkip()methods for seeds - Check constraints - Add CHECK constraints to columns
- Table partitioning - MySQL and PostgreSQL partition support via
partitionBy() - MySQL ALTER optimizations -
ALGORITHMandLOCKoptions for zero-downtime schema changes - Default value expressions - Support for
CURRENT_DATE,CURRENT_TIME, etc. as defaults - Bake improvements - Default value syntax support in migration bake commands
API Improvements
- Short seed names - Use
Usersinstead ofUsersSeedeverywhere - Seeds as command argument -
bin/cake seeds run Userinstead of--seed User --fakeflag - Mark seeds as executed without running them- Consistent use of CakePHP Database classes (Column, Index, ForeignKey)
For details see docs and migration guide.
Full Changelog: 4.9.4...5.0.0