Skip to content

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.

Notifications You must be signed in to change notification settings

vardumper/IbexaAutomaticMigrationsBundle

Repository files navigation

Ibexa Logo Database Migrations Icon

IbexaAutomaticMigrationsBundle

Latest Stable Version Total Downloads Static Badge

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 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

1. Install the bundle

composer require vardumper/ibexa-automatic-migrations-bundle:dev-main

2. Register the bundle in your config/bundles.php:

Remember not to activate this bundle for all environments, usually your development environment is where you want to configure things and have these changes applied elsewehere by executing migrations.

return [
    // ...
    vardumper\IbexaAutomaticMigrationsBundle\IbexaAutomaticMigrationsBundle::class => ['dev' => true],
];

Register the backend controller. Create a file called config/routes/dev/ibexa_automatic_migrations.yaml with this content:

ibexa_automatic_migrations:
    resource: '@IbexaAutomaticMigrationsBundle/src/Controller/'
    type: attribute

Testing

This bundle uses Pest for testing.

Running Tests

First, install the development dependencies:

composer install --dev

Then run the tests:

./vendor/bin/pest

Test Structure

  • tests/Feature/DeleteMigrationTest.php - Tests the delete migration generation functionality
  • tests/Feature/ContentTypeListenerTest.php - Unit tests for the ContentTypeListener class

Roadmap

  • Display Migrations and their status in the amdin panel (for admin users only)
  • 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.
  • Allow the user to select (via admin panel and/or configuration file) which data points migrations are created for

About

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.

Topics

Resources

Stars

Watchers

Forks