====== 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 : php bin/console doctrine:migrations:generate Ajouter le code dans les fonctions **up()** et **down()** de la migration : 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'); } ^ :!: 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 la classe dans les **relations** au sein des autres entités (champs OneToMany, ManyToMany, ...) * Y compris dans les fonctions **getters** et **setters** ... /** * @ORM\Entity(repositoryClass="App\Repository\IndividuRepository") */ class Individu { ... } ===== 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 ... 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. } ===== 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 ===== php bin/console doctrine:migrations:migrate ===== Vider le cache de Symfony ===== php bin/console cache:clear