2012-10-17 70 views
1

Symfony2 Cookbook提供了有关如何从现有模式创建实体的信息,但我无法找到从另一个名为'legacy'的数据库导入的方法, (见下面的config.yml),这不是默认的。Symfony2 + Doctrine:从特定数据库中创建非默认实体

运行下面的命令创建YAML只能从默认的数据库

$ php app/console doctrine:mapping:convert yml ./src/Soapbox/DashboardBundle/Resources/config/doctrine/metadata/orm --from-database --force 

如果我没有提供任何参数的文件,我收到的建议,但不知道哪些是适用的。

doctrine:mapping:convert [--filter="..."] [--force] [--from-database] [--extend[="..."]] [--num-spaces[="..."]] [--namespace[="..."]] [--em[="..."]] to-type dest-path 

应用程序/配置/ config.yml

# Doctrine Configuration 
doctrine: 
    dbal: 
     default_connection: default 
     connections: 
      default: 
       driver: %database_driver% 
       host:  %database_host% 
       port:  %database_port% 
       dbname: %database_name% 
       user:  %database_user% 
       password: %database_password% 
       charset: UTF8 
      legacy: 
       driver: pdo_mysql 
       host:  my.host 
       port:  null 
       dbname: magazines 
       user:  soapbox 
       password: XXXXX 
       charset: UTF8 

回答

2

如果我想清楚,我可能不是,你有两个EntityManagers,默认和传统。

因此,您可以使用标志--em“legacy”来从特定数据库导入它。

+0

我已经upvoted了,因为你在这里的东西,但不幸的是我得到'[InvalidArgumentException]名为“遗传”的Doctrine ORM管理器不存在。我也尝试过legacy_connection作为名字,但那也不起作用。 –

+0

我在[Cookbook](http://symfony.com/doc/2.1/cookbook/doctrine/multiple_entity_managers.html)中找到了更多信息。我错过了第二个实体管理器使用第二个连接的配置,然后将每个Bundle映射到它的Enitity Manager。之后你的解决方案就可以运行谢谢 –

相关问题