Mysql
 sql >> Base de données >  >> RDS >> Mysql

Génération d'entités à partir de la base de données

Votre cas est bien documenté sur le site Web de symfony intitulé "Comment générer des entités à partir d'une base de données existante"

Comme l'indique la documentation :

En utilisant la commande suivante (en supposant que le nom abrégé de votre bundle est GOutsideGOBundle )

Ensuite, vous devez appeler.

Si vous avez besoin de générer des classes d'entités avec des mappages d'annotations, vous devez exécuter la commande suivante avant doctrine:generate:entities

Le chemin doit être uniquement ./src au lieu de ./src/GOutside/GOBundle/Resources/config/doctrine

Mise à jour :

Si tout est correct dans votre configuration, l'erreur Database does not have any mapping information. est peu probable!! Je ne suis pas sûr de cette erreur. Mais selon le schéma de votre table de base de données, certains problèmes vous empêcheront de créer des informations de mappage.

  1. Votre tableau contient un point de type spécial que la doctrine ne peut pas gérer.
  2. Votre table de base de données a plusieurs tables sans aucune clé primaire. Doctrine ne prend pas en charge l'ingénierie inverse à partir de tables qui n'ont pas de clé primaire

Pour résoudre le problème (1) vous pouvez ajouter un mappage personnalisé dans votre section de configuration de doctrine. Par exemple, pour mapper le type de point en tant que chaîne, vous pouvez écrire :

doctrine:
    dbal:
        //Other connection parameters
        mapping_types:
            point: string

pour le deuxième problème, vous devez définir une clé primaire pour ces tables, il peut s'agir d'un nouveau champ ou d'une clé primaire composite.