使用docrine模式在symfony中的另一列之后添加新列



代码

房间表的实体。

use DoctrineORMMapping as ORM;
class Room
{
/**
* @ORMId()
* @ORMGeneratedValue()
* @ORMColumn(type="integer")
*/
private $id;
/**
* @var string
*
* @ORMColumn(type="string")
*/
private $name;
/**
* @var int
*
* @ORMColumn(type="integer")
*/
private $groupOrder;
/**
* @var boolean
*
* @ORMColumn(type="boolean", options={"after": "active","default": false})
*/
private $isAssociable;
/**
* @var bool
*
* @ORMColumn(type="boolean", options={"default" : 1})
*/
private $active = true;
/**
* @var DateTime
*
* @ORMColumn(type="datetime")
*/
private $createdAt;
/**
* @var DateTime
*
* @ORMColumn(type="datetime")
*/
private $updatedAt;
}

我在控制台上运行以下命令,但输出并不像预期的

php bin/console doctrine:schema:update --dump-sql

预期输出

ALTER TABLE room ADD is_associable TINYINT(1(DEFAULT'0'NOT NULLAFTER活动;

我得到的(输出(

ALTER TABLE room ADD is_associable TINYINT(1(DEFAULT'0'NOT NULL;

在教义中似乎天生就不能做到这一点。可能处理该问题的列的选项参数不可用。无论如何,也许你可以通过(当然所有的想法都是变通办法(实现这一点:

  • 创建自定义"位置";注释字段,当然您需要编写自定义命令,该命令将运行doctrine:schema:update --dump-sql并修改sql输出(这只是我的想法(。

  • 使用迁移来实现这一点,在迁移中将放置原始sql

  • 在github上创建PR或Issue to Doctrine ORM项目。

最新更新