2013-08-02 90 views
1

我使用Symfony2與教義來嘗試和更新表模式。我能夠創建表格。我也能夠填充表格。但是,在更新實體中的註釋(我希望某些字段可以爲空)後,這些更改不會被拾取。沒有更新「主義」

我確實創建了具有「Annotations」選項的實體。但是,當我將這一行「nullable = true」添加到字段imageName上的實體時,什麼都不會發生。即:當我運行「./app/console doctrine:schema:update」時,我得到以下輸出:「Nothing to update - 您的數據庫已經與當前實體元數據同步。」

請注意,我試過通過刪除表:./app/console doctrine:database:drop --force,然後通過以下方式重新創建它:./app/console doctrine:database:create然後也是./app/控制檯原則:架構:創建但它仍然不會將我更新的可空字段添加到imageName。

+0

你最初是否執行了原理:mapping:convert?如果是這樣,在schema:update命令將使用註釋之前,您需要刪除生成的xml/yml文件。 – Cerad

+0

@Cerad,這些文件在哪裏找到?我看着應用程序/緩存下,但沒有找到任何東西。 –

回答

2

我能弄明白這一點。我首先使用yml作爲配置格式創建了我的實體「Foobar」。然後我想使用「註釋」作爲配置格式,所以我手動刪除了Entity文件夾(我只創建了一個表),但是我沒有刪除Resources/config/doctrine/Foobar.orm.yml中的配置yml。

因此,當我再次創建實體時,這次使用註釋作爲配置格式,它仍然鏈接到yml配置。去除這個解決了所有的麻煩。

但是我決定堅持使用yml,因爲我覺得它比閱讀評論中的Doctrine Metadata更容易閱讀。

1

我已經堅持了近2天。刪除/ src/AppBundle/Resources/config/doctrine中的所有文件可以解決我的問題。

0

對我來說,關鍵是要清除Redis緩存。

php app/console redis:flushdb 
0

我也有這個問題。在課堂申報前你有正確的註解嗎?

/** 
* 
* @ORM\Entity <- this does the trick 
*/ 
class MyEntityName 
{ 
...