Ibexa DXP Discussions

Community discussion forum for developers working with Ibexa DXP

Upgrade from 2.1 to 2.5 Enterprise


I am trying to upgrade step by step from 2.1 to 2.5 so I followed the official docs for this: https://doc.ezplatform.com/en/latest/updating/4_update_2.2/ but I got stuck at migrating the Landing pages. I want to mention that I also have some custom blocks included that looks like they need to be converted according to documentation.

In order to do this, I have installed the ezsystems/ezplatform-page-migration dependecy, included in AppKernet as it says, but when I run bin/console ezplatform:page:migrate, the script is running for about 8 seconds, then it stops by showing the following error:

In appDevDebugProjectContainer.php line 5926:

Attempted to load class “XmlConverter” from namespace “EzSystems\EzPlatformPageFieldType\FieldType\LandingPage”.
Did you forget a “use” statement for “EzSystems\LandingPageFieldTypeBundle\FieldType\LandingPage\XmlConverter”?

Ive seen in the next lines of the documentation that the custom blocks need to be converted into a different format and uses Listener for this, and Ive converted them like this, and also added the DefaultConverter class within the service.yml file at every custom block like this:

class: EzSystems\EzPlatformPageMigration\Converter\AttributeConverter\DefaultConverter
- { name: ezplatform.fieldtype.ezlandingpage.migration.attribute.converter, block_type: sliderblock }

I`ve also tried to build a custom coverter class to use instead, but still the same error when running the composer migrate script

In the end, I was about to skip this landing pages migration, and just removed the entire bundle from AppKernet and rerun the composer migration script, but it failed again and I don’t know how to proceed forward so I can upgrade to 2.2 at least.

Any help is welcome. Thanks in advice

It looks like you have two different namespaces “EzSystems\EzPlatformPageFieldType” and “EzSystems\LandingPageFieldTypeBundle”. It might be that you have a newer version of the field type bundle where this class doesn’t exist. I can confirm that this class was part of “EzSystems\LandingPageFieldTypeBundle”.

Check your composer and the bundle installed:

ezsystems/landing-page-fieldtype-bunde <- XmlConverter exists only here

Thanks for your implication @da_real

I think we’re closer now and it might be a conflict between these two blundles because when I pulled the git upstream, my composer.json and AppKernel.php got updated and maybe when I tried to merge the old records with the new one, I ended having both of them.


new EzSystems\LandingPageFieldTypeBundle\EzSystemsLandingPageFieldTypeBundle(),
new EzSystems\EzPlatformPageFieldTypeBundle\EzPlatformPageFieldTypeBundle(),

and in composer.json

"ezsystems/ezplatform-page-fieldtype": "~1.0.0",
"ezsystems/landing-page-fieldtype-bundle": "~2.1.0",

I just tried to swap the order or EzSystemsLandingPageFieldTypeBundle and EzPlatformPageFieldTypeBundle inside the AppKernel, so the EzSystemsLandingPageFieldTypeBundle is after EzPlatformPageFieldTypeBundle, but then I got this when runing console cache:clear:

In LayoutDefinitionRegistry.php line 25:

  Type error: Argument 1 passed to EzSystems\LandingPageFieldTypeBundle\Registry\LayoutDefinitionRegistry::addLayoutDefinition() must be an instance of EzSystems\LandingPageFieldTyp   
  eBundle\FieldType\LandingPage\Definition\LayoutDefinition, instance of EzSystems\EzPlatformPageFieldType\FieldType\LandingPage\Definition\LayoutDefinition given, called in \var\cache\dev\ContainerU783jz2\appDevDebugProjectContainer.php on line 11819 

So I`m not even sure if I should have them both or not, but definetly this order is not right since I cannot even run the cache:clear script.
What do you think ?