Créer des tables avec les entités de la Doctrine de Symfony2
J'ai créé plusieurs classes sans l'aide de la commande php php app/console doctrine:generate:entity
, j'ai créé et de cartographie des classes php dans le dossier MyBundle/Entity
.
Quelle est la commande pour générer ces classes entités Doctrine et des tables Mysql?
Vous pouvez utiliser
Lors de l'exécution de php app/console doctrine:schema:update --force, une erreur apparaît: Pas de Métadonnées Classes de processus.
Vous êtes à la cartographie de vos classes à l'aide d'annotations? Assurez-vous que vous n'avez pas d'orm fichiers traîner dans Ressources/config/doctrine.
Oui j'ai eu un fichier de Ressources/config/doctrine, quand je l'ai supprimé je pourrais générer les tables! Merci beaucoup
php app/console doctrine:database:create
pour créer la base de données et puis php app/console doctrine:schema:update --force
. Vous pouvez en lire plus dans le documentation.Lors de l'exécution de php app/console doctrine:schema:update --force, une erreur apparaît: Pas de Métadonnées Classes de processus.
Vous êtes à la cartographie de vos classes à l'aide d'annotations? Assurez-vous que vous n'avez pas d'orm fichiers traîner dans Ressources/config/doctrine.
Oui j'ai eu un fichier de Ressources/config/doctrine, quand je l'ai supprimé je pourrais générer les tables! Merci beaucoup
OriginalL'auteur Alex | 2014-05-13
Vous devez vous connecter pour publier un commentaire.
En supposant que vous avez toutes les annotations et de corriger les getters /setters dans vos fichiers php, il suffit d'appeler
php app/console doctrine:schema:update --force
. À des fins de prévisualisation ypu pouvez utiliserphp app/console doctrine:schema:update --dump-sql
. Qui va vous montrer le sql qui sera exécutée.Si vous n'avez annoté propriétés sans getters /setters (si vous avez créé les fichiers php, les propriétés ajoutées de laquelle vous souhaitez que les colonnes et ont ajouté leurs respectifs des annotations), la première utilisation
php app/console doctrine:generate:entities MyBundle/Entity
. Cela va créer les getters/setters pour vous. Vérifier ici pour plus d'informations.Ça m'est arrivé plusieurs fois. Vérifiez que votre espace de noms définition est correcte selon le chemin d'accès au fichier php. Vérifiez que vous avez ajouté
@ORM\Entity
annotation au-dessus de l'entité définition de la classe. Enfin, vérifiez si vous avez le bon chemin dans ladoctrine:generate:entities
de commande. Notez que vous devez également inclure le dossier au-dessus du lot dans le chemin, autant que je sache (exemple:php app/console doctrine:generate:entities App\MainBundle\Entity
).J'ai vérifié cela, je programme avec eclipse plugin symfony et je vois une erreur dans la doctrine de cartographie.xsd ':cos-nonambig: WC[##autres:"doctrine-project.org/schemas/orm/doctrine-mapping"] et WC[##autres:"théorie project.org/schemas/orm/doctrine-mapping"] (ou les éléments de leur groupe de substitution) violent "d'Attribution de Particule Unique". Au cours de validation par rapport à ce schéma, l'ambiguïté serait créé pour ces deux particules.' Ahy idée?
Pouvez-vous mettre à jour votre question avec le code de vos entités, en particulier le code de l'entité doctrine des annotations? Je ne sais pas si je vais être en mesure d'aider, mais quelqu'un va sûrement. Aussi, veuillez coller le exact de la commande symfony vous essayez d'exécuter.
Merci @Andrej Mohar j'ai résolu avec la Cerad commentaire
OriginalL'auteur Andrej Mohar
Je vous recommande d'utiliser mécanisme de migration. Il est l'outil idéal pour Symfony (DoctrineMigrationsBundle)
OriginalL'auteur Dick D. Russell