2011-01-30 38 views
3

我已經在Zend Framework 1.10上設置了Doctrine 2,並且擁有所有的自動加載設置,包括application.ini中所有必需的配置設置。我現在需要做的事情(或者我相信)是使用映射信息創建我的實體類,以便實體管理器可以使用我的數據庫。生成關於現有數據庫使用的映射信息原理2

我不想做的是手工編寫實體類,因爲這需要很長時間,但我似乎無法確定下一步該做什麼。命令行工具是否具有從現有模式創建實體,代理和所有其他必需類的功能?

+0

我現在已經設法爲我現有的數據庫生成yaml映射,並將它們放在APPLICATION_PATH「/ data/yaml」現在當我嘗試使用orm:generate-entities .. \ library \ Application \ Entity期待它從yaml映射生成實體類,它失敗並顯示消息「沒有要處理的元數據類」 – Kevin 2011-01-30 18:54:39

+1

您是否曾經能夠找出導致「No metadata classes」錯誤的原因?只要我沒有在基於PHP的註釋中使用「newDefaultAnnotationDriver」,我就能夠使用YAML/XML生成映射。這讓我生氣了! – 2012-03-15 20:04:10

回答

3

使用命令行工具:

./bin/doctrine orm:convert-mapping --from-database xml ./bin/tmp 

這樣會生成XML映射。然後,確保配置主義CLI工具,當你更改驅動程序到XmlDriver

$driver = new \Doctrine\ORM\Mapping\Driver\XmlDriver(array(
    APPLICATION_PATH . '/../bin/tmp'    
)); 
$config->setMetadataDriverImpl($driver); 

我CLI配置使用Zend_Application,所以我通常在我的引導改變這一點。

現在運行

./bin/doctrine orm:generate-entities ./bin/tmp 

的XML元數據驅動程序,以便需要orm:generate-entities從XML轉換成實體。如果您使用默認註釋驅動程序,它會將註釋驅動程序路徑中的實體轉換爲實體,而這些實體不是我們想要的。