Avec l'utilisation de DBAL 4 dans Symfony, une nouvelle dépréciation peut apparaitre si la version utilisée de MySQL n'est pas assez récente ou si le lien avec la base de données n'est pas fait de manière à indiquer la version utilisée, nous allons voir comment résoudre cela.

La déprécation est la suivante :

Dépréciation : Support for MySQL < 8 is deprecated and will be removed in DBAL 5

Pour vérifier si la version de MySQL utilisée est supportée nous pouvons entrer la commande suivante :

mysql -V

Si la version n'est pas supportée, il faudra mettre MySQL à jour avant de continuer. Quand tout est prêt, il ne reste plus qu'à configurer le lien avec la base de données avec l'une des deux méthodes qui suivent.

Modification du fichier .env

Il y a deux cas que l'on va observer ici qui peuvent mener à la dépréciation rencontrée malgré une version supportée qui sont :

  • Le manque d'indications sur la version utilisée :
    DATABASE_URL="mysql://user:pass@localhost:3306/db"
  • L'utilisation d'un format de version datant d'avant DBAL 3.7 :
    DATABASE_URL="mysql://user:pass@localhost:3306/db?serverVersion=mariadb-00.00.00"

Pour corriger ça, nous allons écrire les informations de connexion de la manière qui suit :

DATABASE_URL="mysql://user:pass@localhost:3306/db?serverVersion=00.00.00-MariaDB"

Modification de la configuration de Doctrine

Toujours en utilisant la version indiquée par mysql -V, il faudra ajouter la ligne contenant server_version dans la configuration de doctrine en éditant config/packages/doctrine.yaml :

doctrine:
    dbal:  
        server_version: '00.00.00'

En relançant l'application tout fonctionnera comme il faut sans la dépréciation, pour plus d'informations, la documentation officielle de Symfony possède une page dédiée à Doctrine.