An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          




Ibexa Logo




Database Migrations Icon


IbexaAutomaticMigrationsBundle



Latest Stable Version

Total Downloads Static Badge
Code Coverage

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)