Skip to content

Commit af71e65

Browse files
dereuromarkRector Bot
andauthored
Add Migrations 5.0 rector rules for PHINX_TYPE_* constant renaming (#361)
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: cakephp/migrations#948 Co-authored-by: Rector Bot <rector-bot@example.com>
1 parent d88167d commit af71e65

File tree

4 files changed

+68
-0
lines changed

4 files changed

+68
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ The upgrade tool also includes rulesets for related tools and libraries:
103103

104104
- **chronos3** - Upgrade to Chronos 3.x
105105
- **migrations45** - Upgrade to Migrations 4.5
106+
- **migrations50** - Upgrade to Migrations 5.0
106107
- **phpunit80** - Upgrade to PHPUnit 8.0
107108

108109
```bash
@@ -114,6 +115,9 @@ bin/cake upgrade rector --rules chronos3 /path/to/your/app/src
114115
# Apply Migrations 4.5 upgrade rules
115116
bin/cake upgrade rector --rules migrations45 /path/to/your/app/config
116117

118+
# Apply Migrations 5.0 upgrade rules
119+
bin/cake upgrade rector --rules migrations50 /path/to/your/app/config
120+
117121
# Apply PHPUnit 8.0 upgrade rules
118122
bin/cake upgrade rector --rules phpunit80 /path/to/your/app/tests
119123
```

config/rector/migrations50.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
use Cake\Upgrade\Rector\Set\CakePHPSetList;
5+
use Rector\Config\RectorConfig;
6+
7+
return static function (RectorConfig $rectorConfig): void {
8+
$rectorConfig->sets([CakePHPSetList::MIGRATIONS_50]);
9+
};
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
use Rector\Config\RectorConfig;
5+
use Rector\Renaming\Rector\ClassConstFetch\RenameClassConstFetchRector;
6+
use Rector\Renaming\ValueObject\RenameClassConstFetch;
7+
8+
/**
9+
* @see https://github.com/cakephp/migrations/releases/5.0.0/
10+
*/
11+
return static function (RectorConfig $rectorConfig): void {
12+
$rectorConfig->ruleWithConfiguration(RenameClassConstFetchRector::class, [
13+
// Standard types
14+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_STRING', 'TYPE_STRING'),
15+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_CHAR', 'TYPE_CHAR'),
16+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_TEXT', 'TYPE_TEXT'),
17+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_INTEGER', 'TYPE_INTEGER'),
18+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_TINY_INTEGER', 'TYPE_TINYINTEGER'),
19+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_SMALL_INTEGER', 'TYPE_SMALLINTEGER'),
20+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_BIG_INTEGER', 'TYPE_BIGINTEGER'),
21+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_FLOAT', 'TYPE_FLOAT'),
22+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_DECIMAL', 'TYPE_DECIMAL'),
23+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_DATETIME', 'TYPE_DATETIME'),
24+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_TIMESTAMP', 'TYPE_TIMESTAMP'),
25+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_TIME', 'TYPE_TIME'),
26+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_DATE', 'TYPE_DATE'),
27+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_BINARY', 'TYPE_BINARY'),
28+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_BINARYUUID', 'TYPE_BINARY_UUID'),
29+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_BOOLEAN', 'TYPE_BOOLEAN'),
30+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_JSON', 'TYPE_JSON'),
31+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_UUID', 'TYPE_UUID'),
32+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_NATIVEUUID', 'TYPE_NATIVE_UUID'),
33+
34+
// Geospatial types
35+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_GEOMETRY', 'TYPE_GEOMETRY'),
36+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_POINT', 'TYPE_POINT'),
37+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_LINESTRING', 'TYPE_LINESTRING'),
38+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_POLYGON', 'TYPE_POLYGON'),
39+
40+
// Geospatial array constant
41+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPES_GEOSPATIAL', 'TYPES_GEOSPATIAL'),
42+
43+
// Database-specific types
44+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_YEAR', 'TYPE_YEAR'),
45+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_CIDR', 'TYPE_CIDR'),
46+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_INET', 'TYPE_INET'),
47+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_MACADDR', 'TYPE_MACADDR'),
48+
new RenameClassConstFetch('Migrations\Db\Adapter\AdapterInterface', 'PHINX_TYPE_INTERVAL', 'TYPE_INTERVAL'),
49+
]);
50+
};

src/Rector/Set/CakePHPSetList.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ final class CakePHPSetList
9595
*/
9696
public const MIGRATIONS_45 = __DIR__ . '/../../../config/rector/sets/migrations45.php';
9797

98+
/**
99+
* @var string
100+
*/
101+
public const MIGRATIONS_50 = __DIR__ . '/../../../config/rector/sets/migrations50.php';
102+
98103
/**
99104
* @var string
100105
*/

0 commit comments

Comments
 (0)