Table des matières

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 :

/src/Entity/Individu.php
...
 
/**
 * @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 :

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.
 
}

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