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> | ||
| + | |||