Ceci est une ancienne révision du document !


Symfony et les Databases

Prérequis

Il faut installer l'ORM ⇒ symfony composer req orm

Sources à jour

Prérequis

Il faut que l'ORM soit installé, sinon →composer require symfony/orm-pack

Si on utilise MySQL, il faut que l'extension pdo_mysql soit activée dans PHP, sinon erreur : In PDOConnection.php : could not find driver

Configurer un projet

dans le fichier .env modifier la valeur DATABASE_URL

Fichier .env
DATABASE_URL=mysql://User:Password@192.168.1.103:3306/Database_Name
J'ai eu une erreur «SQLSTATE[HY000] [2002] Aucune connexion na pu être établie car l'ordinateur cible la expressément refuse.» qui était dû a une mauvaise forme de l'Url, peut être un espace a la fin ou autre ???

Base de donnée

Création de la base de donnée

Création de la base de donnée avec console doctrine:database:create

D:\webprojects\test-api-project>php bin/console doctrine:database:create
Created database `test_api_project` for connection named default

Vérification avec un client MySQL (comme HeidiSQL)

Supprimer la base de données

Supprimer la base de donnée liée au projet avec la commande console doctrine:database:drop –force

–force est obligatoire sinon il demande de rajouter ce drapeau, pour être sure que vous soyez sure de vouloir supprimer la base de données et son contenu !

D:\webprojects\test-api-project\bin>php console doctrine:database:drop --force
Dropped database `test_api_project` for connection named default

Tables

Mettre à jour les tables suite à la modification d'une Entity

Grâce à la commande console doctrine:schema:update.

2 options :

On peut vérifier ce qui va etre fait avec l'option –dump-sql

D:\webprojects>symfony console doctrine:schema:update --dump-sql

 The following SQL statements will be executed:

     ALTER TABLE article ADD short_description LONGTEXT DEFAULT NULL;

On peut exécuter l’opération avec l'option –force

D:\webprojects>symfony console doctrine:schema:update --force   

 Updating database schema...

     1 query was executed
Vous pourriez laisser un commentaire si vous étiez connecté.