Symfony中的Doctrine2:如何在列定义中指定version选项

Symfony中的Doctrine2:如何在列定义中指定version选项,symfony,datetime,doctrine-orm,mysql-5.6,Symfony,Datetime,Doctrine Orm,Mysql 5.6,我正在与一个原则作斗争——MySQL微秒级的问题。我已经做了研究,你可以在这里看到: 看起来解决方案可能来自于我在这里读到的datetime映射到datetime而不是DATETIME6,即使MySQL 5.6允许,但脚注说datetime是 如果列定义中不包含版本选项,则选择此选项 platformOptions属性数组或被设置为false,这将标记它 作为非锁定信息列 所以我想有一种方法可以在列定义中指定version选项……但无法找到方法。有什么想法吗 编辑:我还按照@Ziumin的建议尝

我正在与一个原则作斗争——MySQL微秒级的问题。我已经做了研究,你可以在这里看到:

看起来解决方案可能来自于我在这里读到的datetime映射到datetime而不是DATETIME6,即使MySQL 5.6允许,但脚注说datetime是

如果列定义中不包含版本选项,则选择此选项 platformOptions属性数组或被设置为false,这将标记它 作为非锁定信息列

所以我想有一种方法可以在列定义中指定version选项……但无法找到方法。有什么想法吗

编辑:我还按照@Ziumin的建议尝试了以下操作:

/**
* @ORM\Column(type="datetime")
* @ORM\Version
*/
protected $timestamp;
php app/console doctrine:schema:update --force
当我执行以下操作时:

/**
* @ORM\Column(type="datetime")
* @ORM\Version
*/
protected $timestamp;
php app/console doctrine:schema:update --force
我得到:

Updating database schema...
Database schema updated successfully! "1" queries were executed
但实际上,一切都没有改变。该字段现在是一个时间戳,不是以前的DATETIME,也不是应该的DATETIME6,具有秒数限制


谢谢大家!

Mb您应该在字段上尝试@Version注释吗?完成,请参阅我编辑的问题。确定。我查看了理论来源。没有DATETIME6支持。它确实为@Version-ed字段生成时间戳。因此,这里的解决方案是实现自己的定制原则类型,例如,名为datetime6。非常感谢你。似乎荒谬的是,它没有开箱即用,可能是将分数映射成整数。我相信我不是唯一一个有这个问题的人。