pagemachine / typo3-phinx
Phinx integration for TYPO3
Installs: 79 182
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 2
Forks: 2
Open Issues: 3
Type:typo3-cms-extension
pkg:composer/pagemachine/typo3-phinx
Requires
- php: ^8.2
- 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 || ^2.0.0
- rector/rector: ^1.2 || ^2.0
- saschaegerer/phpstan-typo3: ^1.0.0 || ^2.0.0 || ^3.0.0
- ssch/typo3-rector: ^2.1 || ^3.0
- 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.
Migrations
The following paths are used for migrations:
migrations/phinxvendor/*/*/Migrations/Phinxvendor/*/*/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:
migrations/phinx/seedsvendor/*/*/Migrations/Phinx/Seedsvendor/*/*/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