Symfony2“php app / console doctrine:schema:update --force”不会向表中添加列

时间:2014-03-05 12:21:13

标签: symfony doctrine

我正在尝试通过doctrine命令向表中添加一列:

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

我知道它可以做到这一点,因为我之前已经这样做了,文档清楚地表明:

“换句话说,如果向Product添加带有映射元数据的新属性并再次运行此任务,它将生成将新列添加到现有产品表所需的”alter table“语句。”

以下是我想要添加为列的字段:

/**
 * @var string
 *
 * @ORM\Column(name="service_machine_name", type="string", length=40, nullable=false)
 */
private $serviceMachineName;

但是当我输入时:     php app / console doctrine:schema:update --force

它告诉我我的数据库与我当前的实体同步,但显然不是,因为我的实体类中有一个额外的字段。

我也尝试将列名缩短为3个字母(以防万一),但它仍然没有添加列!

注意:我已将列添加到同一数据库(远程)上的其他表中,并且之前工作正常。

2 个答案:

答案 0 :(得分:4)

你必须首先为这些列创建setter和getter,如下所示

php app/console doctrine:generate:entities Acme/DemoBundle/Entity/User

之后你必须使用

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

答案 1 :(得分:0)

这个答案是正确的:https://stackoverflow.com/a/22198323/2400373

但是不能在symfony 3中工作,因为这个版本是必要的改变,代码是:

你必须首先为这些列创建setter和getter,如下所示

php bin/console doctrine:generate:entities Acme/DemoBundle/Entity/User

之后你必须使用

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