2013-05-06 1 views
0

Avec Doctrine dans Symfony2, il existe un moyen simple de démarrer un projet avec des entités réorganisées à partir du schéma de base de données existant. Il est assez bien documenté here. Il n'est pas mentionné comment désassembler les données d'une base de données autre que celle par défaut lors de l'utilisation de plusieurs bases de données (ce qui est documenté here).Symfony Doctrine génère des entités à partir de plusieurs bases de données

Je trouve la solution here, cela fonctionne comme ceci:

php app/console doctrine:mapping:convert --em="troller" --from-database yml ./src/NAMESPACE/NAMEBundle/Resources/config/doctrine/metadata/orm 

Cependant, je suis juste l'exception comme si le deuxième gestionnaire d'entités n'existait pas. Même si j'ai config.yml selon docs.

[InvalidArgumentException]        
Doctrine ORM Manager named "troller" does not exist. 

Des idées?

Répondre

3

Avez-vous spécifié un entity manager avec le nom "troller"?

Vous pouvez faire cela avec un bout de code comme celui-ci (dans le fichier app/config/config.yml)

orm: 
    default_entity_manager: default 
    entity_managers: 
    default: 
     connection:  default 
     mappings: 
     AcmeDemoBundle: ~ 
     AcmeStoreBundle: ~ 
    troller: 
     connection:  troller 
     mappings: 
     YourTrollerBundle: ~ 

Dans cet exemple, vous avez défini deux gestionnaires d'entités appelées default et troller. Le gestionnaire d'entité par défaut gère les entités dans AcmeDemoBundle et AcmeStoreBundle, tandis que le gestionnaire d'entités troller gère les entités dans YourTrollerBundle. Vous avez également défini deux connexions, une pour chaque gestionnaire d'entités.

définir obiously un nouveau gestionnaire de connexion et entité, n'est pas enaugh: vous devez spécifier « les paramètres de connexion » également (comme le nom db, utilisateur, mot de passe, pilote, etc.)

troller: 
    driver: "%database_driver2%" 
    host:  "%database_host2%" 
    port:  "%database_port2%" 
    dbname: "%database_name2%" 
    user:  "%database_user2%" 
    password: "%database_password2%" 
    charset: UTF8 
+0

de Bien sûr, ça l'a fait. Merci. –

+0

Il m'aide aussi, btw si vous ne pouvez pas définir l'option de cartographie spécifique. – user1954544

Questions connexes