2012-02-04 101 views
4

所以我有一個現有的數據庫,但我無法按照這裏列出的步驟:http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html,因爲我的一些表中有主鍵的外鍵。Symfony2從.yml文件生成Doctrine實體

我的解決方案是創建一個沒有外鍵約束的數據庫副本,並首先從THAT生成.yaml文件。

所以現在我有XXX.orm.yml文件./src/My/MainBundle/Resources/config/doctrine/metadata/orm

接下來我試圖把這些.yml文件轉換成實體類,並註解通過使用此命令: php應用程序/控制檯原則:映射:導入MyMainBundle註釋 然而,忽略我的.yml文件。它要麼從我的數據庫生成泛型類而不使用外鍵,要麼在我的真實數據庫上使用它時會引發錯誤。它從來沒有看我的.yml文件。

所以我想知道的是,如何將* .orm.yml文件轉換爲實體?

+3

不知怎的,我得到這個工作,但我必須說,這樣做的文檔是非常差,我不得不做不同的事情... – Matt 2012-02-04 07:07:12

+0

嗨。您應該發佈您的解決方案並將其標記爲已回答。過去幾天我一直在研究Doctrine的逆向工程,我很好奇看到你的方法。 – 2012-02-04 15:28:06

+0

我認爲下面的答案是有效的,記不清是什麼,但我會馬上回答,因爲它讓我儘快回覆。 – Matt 2012-02-05 15:18:29

回答

4

我不是100%肯定,如果這是我必須做修復它,但我認爲解決的辦法是從

./src/My/MainBundle/Resources/config/doctrine/metadata/orm 

移動我的.orm.yml文件

一樣簡單
./src/My/MainBundle/Resources/config/doctrine 

和運行

php app/console doctrine:mapping:import MyMainBundle annotation --path="./src" 
2

--path不是一個選項,命令主義:映射:進口

2

使用convertimport後YAML轉換成實體註釋:

php bin/console doctrine:mapping:convert annotation src 

進一步信息,請參見--help。

要強制覆蓋實體文件,請使用--force選項。

要創建存取(getter和setter)使用

php bin/console doctrine:generate:entities yourBundle 

不要忘記檢查,如果陽明文件沒有覆蓋的註釋改變行爲......

問候

相關問題