pagemachine / typo3-phinx
Phinx integration for TYPO3
Installs: 74 859
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 3
Forks: 2
Open Issues: 2
Type:typo3-cms-extension
pkg:composer/pagemachine/typo3-phinx
Requires
- php: ^8.1
- doctrine/dbal: ^3.0 || ^4.0
- robmorgan/phinx: >= 0.11.0 < 1.0
- symfony/console: ^6.4 || ^7.0
- typo3/cms-core: ^12.4 || ^13.4
Requires (Dev)
- ergebnis/composer-normalize: ^2.3
- friendsofphp/php-cs-fixer: ^3.41
- php-parallel-lint/php-console-highlighter: ^1.0.0
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/phpstan: ^1.0.0
- rector/rector: ^1.2
- saschaegerer/phpstan-typo3: ^1.0.0
- ssch/typo3-rector: ^2.1
- typo3/coding-standards: ^0.8.0
README
This package provides a integration of the Phinx database migration tool for TYPO3.
All Phinx commands have been wrapped as phinx:<command> and can be executed using the TYPO3 CLI:
# Create a new migration
typo3 phinx:create
# Migrate the database
typo3 phinx:migrate
# Rollback the last or to a specific migration
typo3 phinx:rollback
# Show migration status
typo3 phinx:status
# Create a new database seeder
typo3 phinx:seed:create
# Run database seeders
typo3 phinx:seed:run
Notice that these wrapper commands are executed by TYPO3, thus the full API like DataHandler can be used in migrations.
(For TYPO3v11 and TYPO3 Console 7.x or older you need to use typo3cms instead.)
Migrations
The following paths are used for migrations:
vendor/*/*/Migrations/Phinxvendor/*/*/Classes/Migrations/Phinx
The following paths are used for TYPO3v11 and older:
typo3conf/ext/*/Migrations/Phinxtypo3conf/ext/*/Classes/Migrations/Phinx
Examples to create a migration in a TYPO3 project:
typo3 phinx:create --path packages/provider/Classes/Migrations/Phinx MyMigration
Note
If one Migrations directory exists already, you can omit --path.
However, should multiple exist, you will receive a prompt and have to select
the desired location.
Seeds
The following paths are used for seeds:
vendor/*/*/Migrations/Phinx/Seedsvendor/*/*/Classes/Migrations/Phinx/Seeds
The following paths are used for TYPO3v11 and older:
typo3conf/ext/*/Migrations/Phinx/Seedstypo3conf/ext/*/Classes/Migrations/Phinx/Seeds
Examples to create a seed in a TYPO3 project:
typo3 phinx:seed:create --path packages/provider/Classes/Migrations/Phinx/Seed MySeeder
Note
If one Migrations/Seed directory exists already, you can omit --path.
However, should multiple exist, you will receive a prompt and have to select
the desired location.
Testing
All tests can be executed with the shipped Docker Compose definition:
docker compose run --rm app composer build