Skip to content

v2.5.4

Choose a tag to compare

@devbajw devbajw released this 18 Feb 15:26
· 21 commits to master since this release

[2.5.4] — 2026-03-10

Fixed

  • [Migrate] Resolver::migrate() is now protected against infinite
    recursion caused by circular foreign key chains (e.g. A→B→C→A). A static
    $migratingEntities registry tracks entities currently being migrated;
    re-entrant calls return false immediately and the original call completes
    normally.
  • [Migrate] Resolver::migrate() now filters all destructive DDL from the
    SQL generated by DBAL4's schema comparator before executing it. DROP TABLE,
    DROP INDEX, and ALTER TABLE ... DROP COLUMN / DROP FOREIGN KEY clauses
    are stripped. migrate() is strictly additive — it never removes data.
  • [Migrate] migrateCreateSchema() promotes string columns with no
    explicit length, or with a length exceeding 16 383 characters (the MySQL
    utf8mb4 VARCHAR limit), to text. DBAL4 changed the default string length
    from 255 to 65 535, which exceeds the MySQL utf8mb4 maximum and caused
    SQLSTATE[42000]: Column length too big on ALTER TABLE.