jldev/ibexa-enhanced-migrations

Additional features that improve the native ibexa migrations bundle.

Maintainers

Package info

github.com/jlecocq/ibexa-enhanced-migrations

pkg:composer/jldev/ibexa-enhanced-migrations

Statistics

Installs: 229

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.4 2026-01-23 11:22 UTC

This package is auto-updated.

Last update: 2026-04-23 12:19:11 UTC


README

This bundle provides additional migration features to the native Ibexa DXP migrations bundle (available in ibexa content, ibexa experience and ibexa commerce). It is compatible with Ibexa 4.x and 5.x.

Installation

composer require jldev/ibexa-enhanced-migrations:^1.0.0

Make sure the bundle is enabled in your config/bundles.php file:

    JL\IbexaEnhancedMigrations\IbexaEnhancedMigrationsBundle::class => ['all' => true],

Features

Custom functions that can be used in migration files (official documentation):

  • content_id_from_content_remote_id("remote_id") : load a content by remote id and return its id
  • location_id_from_content_remote_id("remote_id") : load a content by remote id and return its main location id
  • location_path_string_from_content_remote_id("remote_id") : load a content by remote id and return its main location path string
  • content_id_from_location_remote_id("remote_id") : load a location by remote id and return its content id
  • location_id_from_location_remote_id("remote_id") : load a location by remote id and return its location id
  • location_path_string_from_location_remote_id("remote_id") : load a location by remote id and return its path string
  • section_id_from_section_identifier("section_identifier") : load a section by identifier and return its id
  • content_id_from_user_login("login") : load a user by login and return its id
  • content_remote_id_from_user_login("login") : load a user by login and return its content remote id
  • location_id_from_user_login("login") : load a user by id and return its main location id
  • location_remote_id_from_user_login("login") : load a user by id and return its main location remote id
  • location_remote_id_from_content_remote_id("remote_id") : load a content by remote id and return its main location remote id
  • content_remote_id_from_location_remote_id("remote_id") : load a location by remote id and return its content remote id
  • content_id_from_content_name("name") : load a content by name and return its id (triggers an exception if name is not unique)

Example of usage in a migration file:

-
    type: role
    mode: update
    match:
        field: identifier
        value: 'Anonymous'
    policies:
        mode: append
        list:
            -
                module: content
                function: read
                limitations:
                    - { identifier: Node, values: [ '###XXX location_id_from_content_remote_id("my_remote_id") XXX###' ] }