Table des matières

Symfony et les Databases

Sources à jour

Prérequis

Il faut que l'ORM soit installé, sinon →symfony composer req orm

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

On peut aussi mettre la configuration dans le fichier .env.local.
Fichier qui ne sera pas commité par GIT
Fichier .env ou .env.local
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

Si la base de données est déjà existante

On teste si on a accès a la base de donnée en exécutant une petite requête SQL

symfony console doctrine:query:sql “SHOW TABLES” par exemple…

>symfony console doctrine:query:sql "SHOW TABLES"           

 [OK] 0 rows affected.

Si on a pas d'erreur c'est que tout fonctionne bien !

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 (ALTER) les tables suite à la modification d'une Entity sans perte de données

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