Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
prog:symfony:doctrine:databases [02/11/2019 18:56] thierry [Symfony et les Databases] |
prog:symfony:doctrine:databases [23/10/2022 17:08] (Version actuelle) thierry ↷ Page déplacée de prog:symfony:entities:databases à prog:symfony:doctrine:databases |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Symfony et les Databases ====== | ====== Symfony et les Databases ====== | ||
- | <note important>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'' </note> | + | |
+ | ===== Sources à jour ===== | ||
+ | * [[https://symfony.com/doc/current/doctrine.html]] | ||
===== Prérequis ===== | ===== Prérequis ===== | ||
- | Il faut que l'ORM soit installé, sinon ->''composer require symfony/orm-pack'' | + | Il faut que l'ORM soit installé, sinon ->''symfony composer req orm'' |
+ | <note important>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'' </note> | ||
===== Configurer un projet ===== | ===== Configurer un projet ===== | ||
dans le fichier ''.env'' modifier la valeur ''DATABASE_URL'' | dans le fichier ''.env'' modifier la valeur ''DATABASE_URL'' | ||
- | <code php Fichier .env> | + | <note tip>On peut aussi mettre la configuration dans le fichier ''.env.local''.\\ |
+ | Fichier qui ne sera pas commité par GIT</note> | ||
+ | <code yml Fichier .env ou .env.local> | ||
DATABASE_URL=mysql://User:Password@192.168.1.103:3306/Database_Name | DATABASE_URL=mysql://User:Password@192.168.1.103:3306/Database_Name | ||
</code> | </code> | ||
- | ===== Test : Creation de la base de donnée ===== | + | <note>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 ???</note> |
+ | ===== 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... | ||
+ | <code> | ||
+ | >symfony console doctrine:query:sql "SHOW TABLES" | ||
+ | |||
+ | [OK] 0 rows affected. | ||
+ | </code> | ||
+ | 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'' | Création de la base de donnée avec '' console doctrine:database:create'' | ||
<code php> | <code php> | ||
Ligne 19: | Ligne 40: | ||
{{:prog:symfony:hsql.png|}} | {{:prog:symfony:hsql.png|}} | ||
- | ===== Supprimer la base de données ===== | + | ==== Supprimer la base de données ==== |
Supprimer la base de donnée liée au projet avec la commande ''console doctrine:database:drop --force'' | Supprimer la base de donnée liée au projet avec la commande ''console doctrine:database:drop --force'' | ||
Ligne 27: | Ligne 48: | ||
Dropped database `test_api_project` for connection named default | Dropped database `test_api_project` for connection named default | ||
</code> | </code> | ||
+ | ===== 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'' | ||
+ | <code> | ||
+ | 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; | ||
+ | </code> | ||
+ | On peut exécuter l’opération avec l'option ''--force'' | ||
+ | <code> | ||
+ | D:\webprojects>symfony console doctrine:schema:update --force | ||
+ | |||
+ | Updating database schema... | ||
+ | |||
+ | 1 query was executed | ||
+ | </code> | ||
+ | |||