什么都没有更新" Doctrine"

时间:2013-08-02 21:55:40

标签: symfony doctrine-orm

我正在使用Symfony2和Doctrine来尝试更新表模式。我能够创建表格。我也能够填充表格。但是,在更新实体中的注释(我希望某些字段可以为空)之后,这些更改没有被提取。

我确实创建了选择了“注释”选项的实体。但当我在字段imageName上向实体添加此行“nullable = true”时,没有任何反应。即:当我运行“./app/console doctrine:schema:update”时,我得到以下输出“无需更新 - 您的数据库已与当前实体元数据同步。”

注意,我尝试通过以下方式删除表:./ app / console doctrine:database:drop --force然后通过以下方式重新创建:./ app / console doctrine:database:create然后也是./app/console doctrine:schema:create但它仍然没有将我更新的可空字段添加到imageName。

5 个答案:

答案 0 :(得分:2)

我能够弄清楚这一点。我首先使用yml作为配置格式创建了我的实体“Foobar”。然后我想使用“注释”作为配置格式,所以我手动删除了Entity文件夹(我只创建了一个表),但是我没有删除Resources / config / doctrine / Foobar.orm.yml中的配置yml。

因此,当我再次创建实体时,这次使用注释作为配置格式,它仍然链接到yml配置。删除它解决了所有麻烦。

但我决定坚持使用yml,因为我觉得它比评论中的Doctrine Metadata更容易阅读。

答案 1 :(得分:1)

我已经坚持了将近2天。删除/ src / AppBundle / Resources / config / doctrine中的所有文件解决了我的问题。

答案 2 :(得分:1)

我也有这个问题。在课堂申报之前你有正确的注释吗?

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

答案 3 :(得分:0)

对我来说,关键是要清除Redis缓存。

php app/console redis:flushdb

答案 4 :(得分:0)

检查ortr mappings的doctrine.yaml配置文件:

mappings:
        App:
            is_bundle: false
            type: annotation
            dir: '%kernel.project_dir%/src/Entity'
            prefix: 'App\Entity'
            alias: App

如您所见,所有实体都应该有前缀(命名空间)App \ Entity 您必须检查您的实体名称空间,它应该是 App \ Entity 或您在配置中想要的任何内容