Updating Ibexa DXP to v3.3¶
Ibexa DXP v3.3 uses Symfony Flex. When updating from v3.2 to v3.3, you need to follow a special update procedure.
Ibexa DXP v3.3 requires Composer 2.0.13 or higher.
First, create an update branch in git and commit your work.
If you have not done it before, add the relevant meta-repository as an
It is good practice to make git commits after every step of the update procedure.
Merge the special
v3.2-to-v3.3-upgrade update branch into your project:
This will introduce changes from the website skeleton
and result in conflicts in
Resolve the conflicts in the following way:
- Make sure all automatically added
ezsystems/*packages are removed. If you explicitly added any packages that are not part of the standard installation, retain them.
- Review the rest of the packages. If your project requires a package, keep it.
- If a package is only used as a dependency of an
ezsystemspackage, remove it. You can check how the package is used with
composer why <packageName>.
- Keep the dependencies listed in the website skeleton.
extra.symfony.endpoint is set to
For all dependencies that you removed from
composer.json, check if the
bin folder contains files that will not be used and remove them, for example:
Add your Ibexa DXP edition to
composer.json, for example:
It is impossible to update an Enterprise edition (
to an Ibexa Content edition.
Update the app¶
composer update to update the dependencies:
If Composer informs you that the
composer.lock file is out of date, run
composer update again.
Update recipes for third party packages¶
composer recipes to get a list of all the available recipes.
For every recipe that needs updating, run:
Review changes from each package and integrate them into your project.
Install Ibexa recipes¶
Install recipes for Ibexa packages for your product edition, for example:
Review the changes and add them to your project.
Then, run the post-installation command:
Configure the web server¶
Add the following rewrite rule to your web server configuration:
Update the database¶
Before starting this step, back up your database.
Apply the following database update script:
If you are updating from an installation based on the
run the following command to upgrade your database:
You can only run this command once.
Check the Location ID of the "Components" Content item and set it as a value of the
content_tree_module.contextual_tree_root_location_ids key in
If you are upgrading between Ibexa Commerce versions,
content/read Policy with the Owner Limitation set to
self to the "Ecommerce registered users" Role.
Finish the update¶
Finish the update by running the following commands:
Update to v3.3.x¶
You can only update to the latest patch release of 3.3.x.
To update to v3.3.3, remove
Kaliop\eZMigrationBundle\eZMigrationBundle::class => ['all' => true],
config/bundles.php before running
composer.json, set minimum stability to
v3.3.6 starts using Symfony 5.3.
To update from an earlier v3.3 patch version to v3.3.6, update the following package versions in your
including the Symfony version (line 9):
1 2 3 4 5 6 7 8 9 10 11
See https://github.com/ibexa/website-skeleton/pull/5/files for details of the package version change.
1 2 3
1 2 3
1 2 3
Review the changes to make sure your custom configuration was not affected.
Then, perform a database upgrade relevant to the version you are updating to.
Clear Redis cache
If you are using Redis as your persistence cache storage you should always clear it manually after an upgrade. You can do it by executing the following command:
Update database to v3.3.2¶
To update to v3.3.2, if you are using MySQL, additionally run the following update script:
Update entity managers¶
Version v3.3.2 introduces new entity managers. To ensure that they work in multi-repository setups, you must update the GraphQL schema. You do this manually by following this procedure:
Update your project to v3.3.2 and run the
php bin/console cache:clearcommand to generate the service container.
Run the following command to discover the names of the new entity managers. Take note of the names that you discover:
php bin/console debug:container --parameter=doctrine.entity_managers --format=json | grep ibexa_
For every entity manager prefixed with
ibexa_, run the following command:
php bin/console doctrine:schema:update --em=<ENTITY_MANAGER_NAME> --dump-sql
Review the queries and ensure that there are no harmful changes that could affect your data.
For every entity manager prefixed with
ibexa_, run the following command to run queries on the database:
php bin/console doctrine:schema:update --em=<ENTITY_MANAGER_NAME> --force
VCL configuration for Fastly¶
If you use Fastly, update your VCL configuration.
vendor/ezsystems/ezplatform-http-cache-fastly/fastly/ez_main.vcl file and add the following lines to it:
1 2 3
Optimize workflow queries¶
Run the following SQL queries to optimize workflow performance:
Update database to v3.3.7¶
To update to v3.3.7, additionally run the following script:
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Enable Commerce features¶
With the v3.3.2 update, Commerce features in Experience and Content editions are disabled by default. If you use these features, after the update refer to Enable Commerce features and manually enable them.
Update database to v3.3.9¶
To update to v3.3.9, additionally run the following update script: