From 73e35a6320cc921d8be84d416a5c6a7f3bbea4ab Mon Sep 17 00:00:00 2001 From: Rector Bot Date: Wed, 19 Nov 2025 22:15:29 +0100 Subject: [PATCH] Add Migrations 5.0 rector rules for PHINX_TYPE_* constant renaming This adds rector rules to automatically upgrade migrations from the deprecated PHINX_TYPE_* constants to the new TYPE_* constants introduced in Migrations 5.0. Changes: - Add config/rector/migrations50.php entry point - Add config/rector/sets/migrations50.php with constant rename rules - Update CakePHPSetList with MIGRATIONS_50 constant - Update README.md with migrations50 documentation The rules rename all deprecated PHINX_TYPE_* constants to their new TYPE_* equivalents, matching the naming conventions of Cake\Database\Schema\TableSchemaInterface: - PHINX_TYPE_STRING -> TYPE_STRING - PHINX_TYPE_TINY_INTEGER -> TYPE_TINYINTEGER - PHINX_TYPE_BINARYUUID -> TYPE_BINARY_UUID - etc. See: https://github.com/cakephp/migrations/issues/948 --- README.md | 4 +++ config/rector/migrations50.php | 9 ++++++ config/rector/sets/migrations50.php | 50 +++++++++++++++++++++++++++++ src/Rector/Set/CakePHPSetList.php | 5 +++ 4 files changed, 68 insertions(+) create mode 100644 config/rector/migrations50.php create mode 100644 config/rector/sets/migrations50.php diff --git a/README.md b/README.md index 7755e9de..21be2ab2 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,7 @@ The upgrade tool also includes rulesets for related tools and libraries: - **chronos3** - Upgrade to Chronos 3.x - **migrations45** - Upgrade to Migrations 4.5 +- **migrations50** - Upgrade to Migrations 5.0 - **phpunit80** - Upgrade to PHPUnit 8.0 ```bash @@ -114,6 +115,9 @@ bin/cake upgrade rector --rules chronos3 /path/to/your/app/src # Apply Migrations 4.5 upgrade rules bin/cake upgrade rector --rules migrations45 /path/to/your/app/config +# Apply Migrations 5.0 upgrade rules +bin/cake upgrade rector --rules migrations50 /path/to/your/app/config + # Apply PHPUnit 8.0 upgrade rules bin/cake upgrade rector --rules phpunit80 /path/to/your/app/tests ``` diff --git a/config/rector/migrations50.php b/config/rector/migrations50.php new file mode 100644 index 00000000..a4e8397e --- /dev/null +++ b/config/rector/migrations50.php @@ -0,0 +1,9 @@ +sets([CakePHPSetList::MIGRATIONS_50]); +}; diff --git a/config/rector/sets/migrations50.php b/config/rector/sets/migrations50.php new file mode 100644 index 00000000..e61349da --- /dev/null +++ b/config/rector/sets/migrations50.php @@ -0,0 +1,50 @@ +ruleWithConfiguration(RenameClassConstFetchRector::class, [ + // Standard types + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_STRING', 'TYPE_STRING'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_CHAR', 'TYPE_CHAR'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_TEXT', 'TYPE_TEXT'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_INTEGER', 'TYPE_INTEGER'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_TINY_INTEGER', 'TYPE_TINYINTEGER'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_SMALL_INTEGER', 'TYPE_SMALLINTEGER'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_BIG_INTEGER', 'TYPE_BIGINTEGER'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_FLOAT', 'TYPE_FLOAT'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_DECIMAL', 'TYPE_DECIMAL'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_DATETIME', 'TYPE_DATETIME'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_TIMESTAMP', 'TYPE_TIMESTAMP'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_TIME', 'TYPE_TIME'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_DATE', 'TYPE_DATE'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_BINARY', 'TYPE_BINARY'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_BINARYUUID', 'TYPE_BINARY_UUID'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_BOOLEAN', 'TYPE_BOOLEAN'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_JSON', 'TYPE_JSON'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_UUID', 'TYPE_UUID'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_NATIVEUUID', 'TYPE_NATIVE_UUID'), + + // Geospatial types + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_GEOMETRY', 'TYPE_GEOMETRY'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_POINT', 'TYPE_POINT'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_LINESTRING', 'TYPE_LINESTRING'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_POLYGON', 'TYPE_POLYGON'), + + // Geospatial array constant + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPES_GEOSPATIAL', 'TYPES_GEOSPATIAL'), + + // Database-specific types + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_YEAR', 'TYPE_YEAR'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_CIDR', 'TYPE_CIDR'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_INET', 'TYPE_INET'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_MACADDR', 'TYPE_MACADDR'), + new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_INTERVAL', 'TYPE_INTERVAL'), + ]); +}; diff --git a/src/Rector/Set/CakePHPSetList.php b/src/Rector/Set/CakePHPSetList.php index 65b1d975..6a0b0fc9 100644 --- a/src/Rector/Set/CakePHPSetList.php +++ b/src/Rector/Set/CakePHPSetList.php @@ -95,6 +95,11 @@ final class CakePHPSetList */ public const MIGRATIONS_45 = __DIR__ . '/../../../config/rector/sets/migrations45.php'; + /** + * @var string + */ + public const MIGRATIONS_50 = __DIR__ . '/../../../config/rector/sets/migrations50.php'; + /** * @var string */