The upgrade instructions are available at Oro documentation website.
This file includes only the most important items that should be addressed before attempting to upgrade or during the upgrade of a vanilla Oro application.
Please also refer to CHANGELOG.md for a list of significant changes in the code that may affect the upgrade of some customizations.
Added .env-app
files support and removed most of the parameters from the config/parameters.yml in favor of environment variables with DSNs. For more details, see the migration guide.
- The supported PHP version is 8.2
- The supported PostgreSQL version is 15
- The supported NodeJS version is 18
- The supported Redis version is 7
- The supported RabbitMQ version is 3.11
- The supported PHP MongoDB extension version is 1.15
- The supported MongoDB version is 6.0
The oro.email.update_visibilities_for_organization
MQ process can take a long time when updating from the old versions
if the system has many email addresses (in User, Customer user, Lead, Contact, RFP request, Mailbox entities).
During performance tests with 1M of email addresses, this process took approximately 10 minutes.
It is recommended to add these MQ topics to the oro.index
queue:
oro.email.recalculate_email_visibility
oro.email.update_visibilities
oro.email.update_visibilities_for_organization
oro.email.update_email_visibilities_for_organization
oro.email.update_email_visibilities_for_organization_chunk
The supported NodeJS version is 16.0
The minimum required PHP version is 8.0.0.
- The minimum required PHP version is 7.4.14.
- The minimum supported MySQL version is 8.0.
The var/attachment
and var/import_export
directories are no longer used for storing files and have been removed from the default directory structure.
All files from these directories must be moved to the new locations:
- from
var/attachment/protected_mediacache
tovar/data/protected_mediacache
; - from
var/attachment
tovar/data/attachments
; - from
var/import_export
tovar/data/importexport
; - from
var/import_export/files
tovar/data/import_files
.
The console command oro:gaufrette:migrate-filestorages
will help to migrate the files to new structure.
The regular expressions in fos_js_routing.routes_to_expose
configuration parameter (see config/config.yml
) have changed.
The var/attachment
and var/import_export
directories are no longer used for storing files and have been removed from the default directory structure.
All files from these directories must be moved to the new locations:
- from
var/attachment/protected_mediacache
tovar/data/protected_mediacache
; - from
var/attachment
tovar/data/attachments
; - from
var/import_export
tovar/data/importexport
; - from
var/import_export/files
tovar/data/import_files
.
The console command oro:gaufrette:migrate-filestorages
will help to migrate the files to new structure.
The public/uploads
directory has been removed.
- The minimum required PHP version is 7.3.13.
- The feature toggle for WEB API was implemented. After upgrade, the API feature will be disabled. To enable it please follow the documentation Enabling an API Feature.
- Upgrade PHP before running
composer install
orcomposer update
, otherwise composer may download wrong versions of the application packages.
- The minimum required PHP version is 7.1.26.
oro:assets:install
command was removed, use [assets:install
] instead.oro:assetic:dump
command was removed, useoro:assets:build
instead.nodejs
andnpm
are required dependencies noworo_entity.database_exception_helper
service was removed. CatchDoctrine\DBAL\Exception\RetryableException
directly instead of helper usage.
Upgrade PHP before running composer install
or composer update
, otherwise composer may download wrong versions of the application packages.
- To successfuly upgrade to 3.0.0 version which uses Symfony 3 you need to replace all form alias by their respective FQCN's in entity configs and embedded forms. Use the following script to find out which values should be changed.
php vendor/oro/platform/bin/oro-form-alias-checker/oro-form-alias-checker
- Changed minimum required php version to 7.1
- A full rebuilding of the backend search index is required due to tokenizer configuration has been changed.
- Changed minimum required php version to 7.0
- Updated dependency to fxpio/composer-asset-plugin composer plugin to version 1.3.
- Composer updated to version 1.4.
composer self-update
composer global require "fxp/composer-asset-plugin"
- The
oro:search:reindex
command now works synchronously by default. Use the--scheduled
parameter if you need the old, async behaviour
- removed
be_simple_soap
section. - removed
authentication_listener_class
parameter fromescape_wsse_authentication
section
- Removed
doctrine
section. From now this declaration is located inOroPlatformBundle
bundle. Remove declaration of DBAL connections and ORM entity managers from yourapp/config/config.yml
to be sure that an application will work properly. - Removed unused
report_source
andreport_target
DBAL connections. - Added
config
DBAL connection and ORM entity manager. They can be used as a gateway for different kind of configuration data to improve performance of the default ORM entity manager. For exampleOroEntityConfigBundle
uses them for entity configuration data.
- Changed definition of
framework
/templating
section. New definition is:
framework:
templating:
engines: ['twig', 'php']
assets_version: %assets_version%
assets_version_format: %%s?version=%%s
- Removed
twig
/globals
/ws
section. From now this declaration is located inOroSyncBundle
bundle. - Removed
clank
section. From now this declaration is located inOroSyncBundle
bundle. - Removed
doctrine.dbal.default.wrapped_connection
service. - Removed
session.handler.pdo
service. From now a declaration of this service is located inOroPlatformBundle
. Remove this service from yourapp/config/config.yml
to be sure that PDO session will work properly. If you need to override this service, you can keep it in yourapp/config/config.yml
, but make sure that a default database connection is not used here. You can usedoctrine.dbal.session_connection.wrapped
service if sessions are stored in a main database.
- Removed
app/Resources/DoctrineBundle/views/Collector/db.html.twig
. - Removed
app/Resources/SecurityBundle/views/Collector/security.html.twig
. - Removed
app/Resources/SwiftmailerBundle/views/Collector/swiftmailer.html.twig
. - Removed
app/Resources/WebProfilerBundle/views/Collector/config.html.twig
. - Removed
app/Resources/WebProfilerBundle/views/Collector/logger.html.twig
. - Removed
app/Resources/WebProfilerBundle/views/Collector/memory.html.twig
. - Removed
app/Resources/WebProfilerBundle/views/Collector/request.html.twig
. - Removed
app/Resources/WebProfilerBundle/views/Collector/time.html.twig
.