我正在尝试通过教义命令向表中添加一列:
php app/console doctrine:schema:update --force
我知道它可以做到这一点,因为我以前做过,文档清楚地说明了这一点:
"换句话说,如果您添加一个将元数据映射到 Product 的新属性并再次运行此任务,它将生成将该新列添加到现有产品表所需的"alter table"语句。"
以下是我尝试添加为列的字段:
/**
* @var string
*
* @ORMColumn(name="service_machine_name", type="string", length=40, nullable=false)
*/
private $serviceMachineName;
但是当我输入: PHP 应用程序/控制台原则:模式:更新 --强制
它告诉我我的数据库与我当前的实体同步,但显然不是,因为我的实体类中有一个额外的字段。
我还尝试将列名称缩短为 3 个字母(以防万一),但它仍然没有添加列!
注意:我已经将列添加到同一数据库(远程)上的不同表中,并且以前工作正常。
您必须首先为该列创建 setter 和 getter 如下
php app/console doctrine:generate:entities Acme/DemoBundle/Entity/User
之后你必须使用
php app/console doctrine:schema:update --force
这个答案是正确的:https://stackoverflow.com/a/22198323/2400373
但是不要在symfony 3中工作,对于这个版本是必要的更改,代码是:
您必须首先为该列创建二传手和getter,如下所示
php bin/console doctrine:generate:entities Acme/DemoBundle/Entity/User
之后你必须使用
php bin/console doctrine:schema:update --force