2015-07-10 76 views
1

我刚刚加在我的模型一个新的属性:Symfony2的学说:架构:更新不断更新

/** 
* @ORM\Column(name="has_donation", type="boolean", options ={"default":false}) 
*/ 
private $hasDonation; 

然后我试图运行:

php app/console doctrine:schema:update --force 

这给了我以下结果:

Updating database schema... 
Database schema updated successfully! "1" queries were executed 

的问题是,我每次运行schema:update命令时,我得到了相同的结果 - 无麦对我的实体进行任何更改。任何想法为什么?谢谢!

更新 这里的出来php app/console doctrine:schema:update --dump-sql

ALTER TABLE Clinic CHANGE has_donation has_donation TINYINT(1) DEFAULT '0' NOT NULL; 
+0

我有同样的问题,你解决了吗? – Vedmant

+0

我不记得我是如何设法解决它的,但我现在以不同的方式设置默认值:private $ hasDonation = false;而不是在声明列时使用options参数。 – Sebastian

回答

2

首先,尝试删除缓存。

然后,尝试php app/console doctrine:schema:update --dump-sql以查看更新内容。 这些与"default": false差异的选项有时不会被记录。至少在我们使用的PostgreSQL上。

您可能需要它们手动运行它们。从我们的工作流程


提示:

1)我们设置实体

2)然后运行php app/console doctrine:schema:update --force

3)然后运行添加有细节没有被转化为数据库

迁移
2

我可以认为这个问题是由于使用非法或不相关的映射信息而产生的。

在问题作者的情况下,选项"default":false是非法的。

我曾与代码相同的问题:

/** 
* @ORM\Column(
*  type="boolean", 
*  nullable=false, 
*  options={"unsigned":true, "comment":"Is file uploaded manually?"} 
*) 
*/ 
protected $manual = false; 

在我的情况下,选择"unsigned":true是无关紧要的。删除这个选项后,我得到了代码工作。