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



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

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

最新更新