Outils pour utilisateurs

Outils du site


symfony4:database_renommer_entite

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
symfony4:database_renommer_entite [2020/05/23 06:00]
marclebrun [Renommer la classe de l'Entité]
— (Version actuelle)
Ligne 1: Ligne 1:
-====== Renommer une entité ====== 
- 
-Dans cet exemple, on renomme l'​entité **Personne** en **Individu**. 
- 
-===== Renommer la table dans la base de données ===== 
- 
-Générer une nouvelle migration vide : 
- 
-<code bash> 
-php bin/console doctrine:​migrations:​generate 
-</​code>​ 
- 
-Ajouter le code dans les fonctions **up()** et **down()** de la migration : 
- 
-<code php> 
-public function up(Schema $schema) : void 
-{ 
-    // this up() migration is auto-generated,​ please modify it to your needs 
-    $this->​abortIf($this->​connection->​getDatabasePlatform()->​getName() !== '​mysql',​ '​Migration can only be executed safely on \'​mysql\'​.'​);​ 
-    $this->​addSql('​RENAME TABLE personne TO individu'​);​ 
-} 
- 
-public function down(Schema $schema) : void 
-{ 
-    // this down() migration is auto-generated,​ please modify it to your needs 
-    $this->​abortIf($this->​connection->​getDatabasePlatform()->​getName() !== '​mysql',​ '​Migration can only be executed safely on \'​mysql\'​.'​);​ 
-    $this->​addSql('​RENAME TABLE individu TO personne'​);​ 
-} 
-</​code>​ 
- 
-^ :!: Ne pas appliquer cette migration tout de suite... ^ 
- 
-===== Renommer la classe de l'​Entité ===== 
- 
-Renommer le fichier **src/​Entity/​Personne.php** en **src/​Entity/​Individu.php**. 
- 
-Éditer le fichier en modifiant toutes les instances de **Personne** : 
-  * Nom de la **classe** 
-  * Nom du **Repository** 
-  * Nom de l'​entité dans les **relations** au sein des autres entités (champs OneToMany, ManyToMany, ...) 
- 
-<code php /​src/​Entity/​Individu.php>​ 
- 
-... 
- 
-/** 
- * @ORM\Entity(repositoryClass="​App\Repository\IndividuRepository"​) 
- */ 
-class Individu 
-{ 
-    ... 
-} 
-</​code>​ 
- 
-===== Renommer la classe de Repository ===== 
- 
-Renommer le fichier **src/​Repository/​PersonneRepository.php** en **src/​Repository/​IndividuRepository.php**. 
- 
-Éditer le fichier en modifiant toutes les instances de **Personne** : 
-  * Nom de l'​**entité** utilisée 
-  * Nom de la **classe** 
-  * Référence de la classe entité dans le **contructeur** 
-  * Annotations,​ types des paramètres et fonctions 
- 
-<code php src/​Repository/​IndividuRepository.php>​ 
-... 
- 
-use App\Entity\Individu;​ 
- 
-... 
- 
-class IndividuRepository extends ServiceEntityRepository 
-{ 
-    public function __construct(ManagerRegistry $registry) 
-    { 
-        parent::​__construct($registry,​ Individu::​class);​ 
-    } 
- 
-    // MODIFIER AUSSI TOUTES LES ANNOTATIONS ET LES TYPES INDIQUÉS 
-    // COMME PARAMÈTRES OU VALEURS DE RETOUR DES FONCTIONS. 
-    ​ 
-} 
-</​code>​ 
- 
-===== Modifier les contrôleurs,​ templates, formulaires,​ ... ===== 
- 
-Remplacer **Personne** par **Individu** dans tous les contrôleurs où la classe est utilisée. 
- 
-S'il y a des templates qui utilisent l'​ancien nom de l'​entité,​ les modifier également. 
- 
-===== Modifier les fixtures ===== 
- 
-Si elle existe, renommer la classe **PersonneFixtures** en **IndividuFixtures**. 
- 
-Remplacer **Personne** par **Individu** dans les autres fixtures où la classe est utilisée. 
- 
-===== Appliquer la migration ===== 
- 
-<code bash> 
-php bin/console doctrine:​migrations:​migrate 
-</​code>​ 
- 
-===== Vider le cache de Symfony ===== 
- 
-<code bash> 
-php bin/console cache:clear 
-</​code>​ 
- 
  
symfony4/database_renommer_entite.1590213614.txt.gz · Dernière modification: 2020/05/23 06:00 par marclebrun