https://github.com/vardumper/ibexaautomaticmigrationsbundle
This Bundle eliminates the need to manually create migration files for Ibexa DXP on the command line. When configurations change, it auto-generates the respective migrations. Supports kaliop, tanoconsulting and Ibexa enterprise edition migrations.
https://github.com/vardumper/ibexaautomaticmigrationsbundle
ibexa ibexa-bundle ibexa-platform ibexa-platform-bundle
Last synced: 3 months ago
JSON representation
This Bundle eliminates the need to manually create migration files for Ibexa DXP on the command line. When configurations change, it auto-generates the respective migrations. Supports kaliop, tanoconsulting and Ibexa enterprise edition migrations.
- Host: GitHub
- URL: https://github.com/vardumper/ibexaautomaticmigrationsbundle
- Owner: vardumper
- Created: 2025-12-21T11:02:51.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-15T10:16:28.000Z (5 months ago)
- Last Synced: 2026-01-15T15:32:50.376Z (5 months ago)
- Topics: ibexa, ibexa-bundle, ibexa-platform, ibexa-platform-bundle
- Language: PHP
- Homepage: https://github.com/vardumper/IbexaAutomaticMigrationsBundle
- Size: 224 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
IbexaAutomaticMigrationsBundle
This is a bundle for Ibexa DXP. It automatically creates migrations for content types and content type groups.
The goal is to eliminate the need to manually create migrations or test them – instead have Ibexa auto-generate them for us whenever content types change.
Migrations are created in the default locations (in `src/Migrations/Ibexa/migrations` when using ibexa/migrations or in `src/MigrationsDefinitions` when using kaliop, tanoconsulting, mrk-te open source migration bundle).
## Requirements
* Ibexa DXP >= v5.0
* Ibexa DXP >= v4.4 (untested)
* A migrations [bundle](https://packagist.org/packages/mrk-te/ibexa-migration-bundle2) if using Ibexa OSS
## Features
* Automatically create migrations when changes are made in the admin panel
* Supports Ibexa DXP v5.x Headless, Experience and Commerce editions via `ibexa/migrations`
* Supports Ibexa DXP v5.x. Open Source Edition via `mrk-te/ibexa-migration-bundle2`
## Supported Types of Migrations
* Content Type Group
* Content Type
* Language
* Object State Group
* Object State
* Role
* Section
* URL Wildcards
* URL Manager
## Installation
### With Symfony Flex (recommended)
Add the recipe endpoint to your project's `composer.json` once:
```json
"extra": {
"symfony": {
"endpoint": [
"https://raw.githubusercontent.com/vardumper/IbexaAutomaticMigrationsBundle/main/flex/",
"flex://defaults"
]
}
}
```
Then install the bundle:
```bash
composer require vardumper/ibexa-automatic-migrations-bundle
```
Symfony Flex will automatically:
- Register the bundle in `config/bundles.php`
- Copy a default configuration to `config/packages/ibexa_automatic_migrations.yaml`
### Without Symfony Flex (manual)
#### 1. Install the bundle
```bash
composer require vardumper/ibexa-automatic-migrations-bundle
```
#### 2. Register the bundle in `config/bundles.php`
Remember that even though the bundle is activated for all environments, migration files are only created when `APP_ENV` is set to `dev`.
```php
return [
// ...
vardumper\IbexaAutomaticMigrationsBundle\IbexaAutomaticMigrationsBundle::class => ['all' => true],
];
```
#### 3. Create the package configuration
Create `config/packages/ibexa_automatic_migrations.yaml`:
```yaml
ibexa_automatic_migrations:
enabled: true
types:
content: false
content_type: true
content_type_group: true
section: false
object_state: false
object_state_group: false
user: false
user_group: false
role: false
language: false
url: false
```
#### 4. Register the backend controller routes
Create `config/routes/dev/ibexa_automatic_migrations.yaml`:
```yaml
ibexa_automatic_migrations:
resource: '@IbexaAutomaticMigrationsBundle/src/Controller/'
type: attribute
```
To configure which migration types are generated, go to Admin > Migrations > Settings.
## Testing
This bundle uses [Pest](https://pestphp.com/) for testing.
### Running Tests
First, install the development dependencies:
```bash
composer install --dev
```
Then run the tests:
```bash
./vendor/bin/pest
```
### Coverage Report
You can also generate a coverage report by running the following command.
```
XDEBUG_MODE=coverage vendor/bin/pest --coverage-html=coverage-report
```
## Roadmap
* Allow admins to execute pending migrations in the admin panel
* Support more types of migrations, not only content types are relevant, but Languages, Sections, etc.
* Determine or allow configuring which Migration Bundle one wants to use (if kaliop and ibexa bundles are installed)