2012-10-17 89 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。之後你的解決方案就可以運行謝謝 –

相關問題