Docker
Nous allons utiliser Docker pour avoir une base de données sur l’environnement de développement.
Vous pouvez utiliser le fichier de configuration ci-dessus qui contient la recette pour avoir un serveur MySQL et PhpMyAdmin.
Dézipper le fichier, et replacer le fichier compose.yaml à la racine de votre projet, puis modifiez le nom de la base de données pour qu’elle corresponde à votre projet. Vous pouvez également modifier les numéros de ports, et les noms des conteneurs, si besoin. Supprimez le fichier compose.override.yaml.
Lancer la commande suivante afin de créer les conteneurs dockers.
docker-compose up -d

Notez qu’avec cette configuration, la base de données est stockée dans votre dossier de projet : mysql_data/. Ajoutez ce dossier dans le fichier .gitignore situé à la racine de votre projet, afin qu’il ne soit pas envoyé sur GitHub.
N’oubliez pas d’allumer Docker.
Configuration de la base de données.
La connexion entre Symfony et la base de données se fait via le fichier .env situé à la racine du projet.
Par défaut, le fichier configure une base de données PostgreSQL. Mettez en commentaire cette ligne et décommentez la première ligne permet de configurer une base de donnée MySql.
DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4"
Voici les modifications à effectuer :
- app : nom d’utilisateur de la base de données. Si vous ne l’avez pas modifier, mettre
symfony. - !ChangeMe! : mot de passe de l’utilisateur de la base de données. i vous ne l’avez pas modifier, mettre
symfony. - 3306 : numéro de port de MySQL. Si vous ne l’avez pas modifier 3307.
- app : nom de la base de donnée. Le nom que vous avez spécifiez dans le fichier compose.yaml
- 8.0.32 : numéro de version de MySQL. Vous pouvez le changer avec le numéro de version affichée dans PhpMyAdmin.
Sur un projet à plusieurs, vous n’aurez pas forcément la même configuration pour Docker. Dans ce cas, il faudra créer un fichier .env.local à la racine du projet dans lequel on remet la ligne
DATABASE_URL="[...]"en modifiant les informations nécessaires.Ce fichier ne sera pas envoyé sur GitHub et prendra le dessus sur le fichier .env.
