Téléchargez le Upgrade Compatibility Tool

NOTE
Upgrade Compatibility Tool est disponible uniquement pour les instances Adobe Commerce.

Pour commencer à utiliser le Upgrade Compatibility Tool dans une interface de ligne de commande, téléchargez-le en exécutant la commande suivante :

composer create-project magento/upgrade-compatibility-tool uct --repository https://repo.magento.com

Vous devrez peut-être accorder à l’outil des autorisations exécutables avec la commande chmod :

chmod +x ./uct/bin/uct

Upgrade Compatibility Tool dans une interface de ligne de commande

Upgrade Compatibility Tool est un outil qui vérifie une instance personnalisée Adobe Commerce par rapport à une version spécifique en analysant tous les modules qui y sont installés. Elle renvoie une liste des problèmes, erreurs et avertissements critiques qui doivent être résolus avant la mise à niveau vers la dernière version d’Adobe Commerce.

Consultez ce tutoriel vidéo (06:02) pour en savoir plus sur Upgrade Compatibility Tool.

Commandes disponibles pour Upgrade Compatibility Tool dans une interface de ligne de commande :

Commande
Description
upgrade:check
Cette commande exécute le Upgrade Compatibility Tool en analysant tous les modules qui y sont installés.
dbschema:diff
Cette commande affiche toutes les différences de schéma de base de données entre deux versions Adobe Commerce spécifiées.
core:code:changes
Cette commande compare votre installation actuelle d’Adobe Commerce à une installation Vanilla propre.
refactor
Cette commande corrige automatiquement un ensemble réduit de problèmes.
graphql:compare
Cette commande permet d’analyser deux points de terminaison GraphQL et de comparer leurs schémas.
list
Cette commande renvoie une liste de toutes les commandes Upgrade Compatibility Tool disponibles.
help
Cette commande renvoie toutes les options helpdisponibles pour Upgrade Compatibility Tool. Cette commande peut être exécutée ainsi qu'une option avec les commandes précédentes.

Utilisation de la commande upgrade:check

La commande upgrade:check recherche les modifications de code principal pour cette instance Adobe Commerce spécifique et toutes les modifications de code personnalisé qui y sont installées.

La commande upgrade:check est la commande principale pour exécuter l’outil :

bin/uct upgrade:check <dir>

Où la valeur <dir> est le répertoire dans lequel se trouve votre instance Adobe Commerce.

Options disponibles pour la commande upgrade:check :

Commande
Options disponibles
upgrade:check
  • —help : renvoie toutes les options disponibles.
  • —current-version : version Adobe Commerce actuelle. Ce paramètre est obligatoire et doit toujours être utilisé.
  • —min-issue-level : vous pouvez filtrer les problèmes en fonction du niveau de problème minimum (la valeur par défaut est WARNING).
  • —ignore-current-version-compatibility-issues (ou -i) : si vous ne souhaitez pas inclure de problèmes critiques, d’erreurs et d’avertissements de la version actuelle dans votre rapport.
  • —coming-version (ou -c) : ciblez une version spécifique d’Adobe Commerce. La dernière version disponible sera utilisée si elle est omise.

Upgrade Compatibility Tool permet d'exécuter la commande upgrade:check avec une option --ignore-current-version-compatibility-issues. Utilisez cette option lorsque vous souhaitez uniquement obtenir de nouveaux problèmes introduits avec la mise à jour de votre version actuelle vers la version ciblée dans votre rapport Upgrade Compatibility Tool :

bin/uct upgrade:check --ignore-current-version-compatibility-issues <dir>
NOTE
Cela s’applique uniquement aux validations d’API PHP.

Ajout de l’option --coming-version

Vous pouvez comparer votre installation actuelle d’Adobe Commerce avec n’importe quelle version d’Adobe Commerce >=2.3 à l’aide de l’option --coming-version .

Vous devez fournir la version comme paramètre lors de l’exécution de la commande upgrade:check :

bin/uct upgrade:check <dir> -c 2.4.3

-c, --coming-version[=COMING-VERSION] fait référence à la version ciblée Adobe Commerce.

Il existe certaines limites lors de l’exécution de l’ --coming-version :

  • Ce paramètre fait référence à toute balise qui identifie une version spécifique d’Adobe Commerce.
  • Il est nécessaire de fournir explicitement celui-ci ; fournir uniquement la valeur de celui-ci ne fonctionne pas.
  • Fournissez la version de la balise sans guillemets (ni simples ni doubles) : '2.4.1-develop'.
  • Vous ne devez PAS fournir d’anciennes versions que celle que vous avez installée actuellement, ni plus de 2.3, qui est la plus ancienne version prise en charge pour le moment.

Utilisation de la commande dbschema:diff

Vous pouvez récupérer la différence entre le schéma de base de données de deux versions d’Adobe Commerce.

bin/uct dbschema:diff <current-version> <target-version>

Où les arguments sont les suivants :

  • <current-version> : toute version Adobe Commerce à des fins de comparaison.
  • <target-version> : également toute version Adobe Commerce à des fins de comparaison.

Exemple d'exécution :

bin/uct dbschema:diff 2.4.3 2.4.3-p3

DB schema differences between versions 2.4.3 and 2.4.3-p3:

Table klarna_payments_quote constraint QUOTE_ID_KLARNA_PAYMENTS_QUOTE_QUOTE_ID_QUOTE_ENTITY_ID is present only in version 2.4.3-p3
Table klarna_payments_quote index KLARNA_PAYMENTS_QUOTE_SESSION_ID is present only in version 2.4.3-p3
Table customer_entity column session_cutoff is present only in version 2.4.3-p3
Table customer_visitor column session_id length value is different. 2.4.3: "64", 2.4.3-p3: "1"
Table customer_visitor column session_id comment value is different. 2.4.3: "Session ID", 2.4.3-p3: "Deprecated: Session ID value no longer used"
Table customer_visitor column created_at is present only in version 2.4.3-p3
Table oauth_consumer column secret length value is different. 2.4.3: "32", 2.4.3-p3: "128"
Table oauth_token column secret length value is different. 2.4.3: "32", 2.4.3-p3: "128"
Table admin_user_session column session_id nullable value is different. 2.4.3: "false", 2.4.3-p3: "true"
Table admin_user_session column session_id length value is different. 2.4.3: "128", 2.4.3-p3: "1"
Table admin_user_session column session_id comment value is different. 2.4.3: "Session ID value", 2.4.3-p3: "Deprecated: Session ID value no longer used"

Total detected differences between version 2.4.3 and 2.4.3-p3: 11

Utilisation de la commande core:code:changes

Vous pouvez comparer votre installation Adobe Commerce actuelle pour vérifier si le code principal d’Adobe Commerce a été modifié pour mettre en oeuvre une personnalisation. Cette commande affiche uniquement une liste des modifications principales :

bin/uct core:code:changes <dir> <vanilla dir>

Où les arguments sont les suivants :

  • <dir> : répertoire d’installation Adobe Commerce.
  • <vanilla dir> : répertoire d’installation Adobe Commerce vanilla.

Options disponibles pour la commande core:code:changes :

Commande
Options disponibles
core:code:changes
--help : renvoie toutes les options --help disponibles.
NOTE
Il est recommandé d’exclure le code personnalisé du code principal. Consultez le guide de mise à niveau d’Adobe Commerce 2.4 pour plus d’informations sur les bonnes pratiques de mise à niveau.

Installation de vanille

Une installation vanilla est une installation propre d’une balise ou d’une branche de version spécifiée pour une version spécifique.

La commande bin/uct core:code:changes vérifie si votre système contient une instance Vanilla. Si c’est la première fois que vous utilisez une installation Vanilla, une question de ligne de commande interactive vous invite à télécharger le projet Vanilla à partir du référentiel Adobe Commerce (https://repo.magento.com/).

Vous pouvez exécuter une commande Upgrade Compatibility Tool avec l’option --vanilla-dir pour spécifier le répertoire d’installation Vanilla Adobe Commerce.

Pour plus d’informations, consultez la rubrique Déployer l’instance Vanilla .

Utilisation de la commande refactor

Le Upgrade Compatibility Tool peut résoudre automatiquement un ensemble réduit de problèmes :

  • Fonctions qui étaient autorisées à être utilisées sans passer d’argument, mais avec une telle utilisation désormais obsolète.
  • Utilisation de $this dans les modèles de Magento.
  • Utilisation du mot-clé PHP final dans des méthodes privées.

Pour cela, exécutez la commande refactor :

bin/uct refactor <dir>

Où la valeur <dir> est le répertoire dans lequel se trouve votre instance Adobe Commerce.

Options disponibles pour la commande refactor :

Commande
Options disponibles
refactor
--help : renvoie toutes les options --help disponibles.

Utilisation de la commande graphql:compare

Cette commande permet à Upgrade Compatibility Tool d’analyser deux points de terminaison GraphQL et de comparer leurs schémas afin de rechercher des modifications risquées et entraînant des ruptures :

bin/uct graphql:compare <schema1> <schema2>

Où les arguments sont les suivants :

  • <schema1> : URL du point d’entrée pour l’installation existante.
  • <schema2> : URL du point d’entrée pour l’installation Vanilla.

Options disponibles pour la commande graphql:compare :

Commande
Options disponibles
graphql:compare
--help : renvoie toutes les options --help disponibles.

Utilisation de la commande list

Pour renvoyer une liste des commandes disponibles Upgrade Compatibility Tool, exécutez :

bin/uct list

Utilisation de la commande help

Pour afficher les options générales de la commande Upgrade Compatibility Tool et obtenir de l’aide, exécutez :

bin/uct --help

Elle renvoie une liste contenant toutes les options help disponibles pour Upgrade Compatibility Tool dans une interface de ligne de commande :

- --raw             To output raw command list
- --format=FORMAT   The output format (txt, xml, json, or md) [default: "txt"]
- --short           To skip describing commands' arguments
- -h, --help            Display help for the given command. When no command is given display help for the list command
- -q, --quiet           Do not output any message
- -V, --version         Display this application version
- --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
- -n, --no-interaction  Do not ask any interactive question
- -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Il est possible d'exécuter --help comme option lors de l'exécution d'une commande spécifique. Elle renvoie --help options pour la commande spécifiée.

Exemple de commande upgrade:check avec l'option --help :

bin/uct upgrade:check --help

Elle renvoie des options spécifiques pouvant être exécutées pour la commande upgrade:check :

- -a, --current-version[=CURRENT-VERSION]: Current Adobe Commerce version, version of the Adobe Commerce installation will be used if omitted.
- -c, --coming-version[=COMING-VERSION]: Target Adobe Commerce version, latest released version of Adobe Commerce will be used if omitted. Provides a list of all available Adobe Commerce versions.
- --json-output-path[=JSON-OUTPUT-PATH]: Path of the file where the output will be exported in json format.
- --html-output-path[=HTML-OUTPUT-PATH]: Path of the file where the output will be exported in HTML format.
- --min-issue-level[=MIN-ISSUE-LEVEL]            Minimal issue level you want to see in the report (warning, error or critical). [default: "warning"]
- -i, --ignore-current-version-compatibility-issues  Ignore common issues for current and coming version
- --context=CONTEXT: Execution context. This option is for integration purposes and does not affect the execution result.
- -h, --help: Display help for that specific command. If no command is provided, `list` command is the default result.
- -q, --quiet: Do not output any messages while executing the command.
- -v, --version: Display application version.
- --ansi, --no-ansi: Enable ANSI output.
- -n, --no-interaction: Do not ask any interactive question while executing the command.
- -v, --vv, --vvv, --verbose: Increase verbosity of output communications. 1 for normal output, 2 for verbose output, and 3 for DEBUG output.

Suivre les bonnes pratiques d’Adobe Commerce

Optimiser vos résultats

Upgrade Compatibility Tool fournit un rapport contenant les résultats avec tous les problèmes identifiés par défaut sur votre projet. Vous pouvez optimiser les résultats pour vous concentrer sur les problèmes que vous devez corriger pour terminer la mise à niveau :

  • Utilisez l’option --ignore-current-version-compatibility-issues lorsque vous souhaitez uniquement obtenir de nouveaux problèmes introduits avec la mise à jour de votre version actuelle vers la version ciblée de votre rapport Upgrade Compatibility Tool.
  • En ajoutant l’option --min-issue-level, ce paramètre permet de définir le niveau de problème minimum, afin de n’aider à classer par priorité que les problèmes les plus importants liés à votre mise à niveau.
  • L’exécution de Upgrade Compatibility Tool nécessite au moins 2 Go de mémoire vive. Ce paramètre est recommandé pour éviter les problèmes en raison d’une faible limitation de mémoire. Upgrade Compatibility Tool affiche une question si vous exécutez la commande upgrade:check avec un paramètre memory_limit faible.
recommendation-more-help
83a60e0e-8849-4685-a8cd-c129ecd795ea