Php 如何防止条令创建默认为NULL的无用迁移
我想向那个些使用Mysql+ORM+ORM+ORM迁移的人提出这个问题 我有一个协会:Php 如何防止条令创建默认为NULL的无用迁移,php,doctrine-orm,doctrine-migrations,Php,Doctrine Orm,Doctrine Migrations,我想向那个些使用Mysql+ORM+ORM+ORM迁移的人提出这个问题 我有一个协会: /** * @var User * * @ORM\ManyToOne(targetEntity="User") * @ORM\JoinColumn(nullable=true) */ protected $sender; (这里的关键点是nullable=true。有些属性是故意留下的) 我做migrations:diff-生成的迁移带有一个
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(nullable=true)
*/
protected $sender;
(这里的关键点是nullable=true
。有些属性是故意留下的)
migrations:diff
-生成的迁移带有一个片段sender\u id VARCHAR(255)默认为NULL
diff
,希望不会生成新的迁移CHANGE sender\u id sender\u id VARCHAR(255)行默认为空
@ORM\Column(options={“default”:NULL})
这有助于防止迁移中的defaultnull
,但在这种情况下FK和Index被删除
还尝试添加columnDefinition=“VARCHAR(255)DEFAULT NULL”
,但也不起作用
你是如何解决这个问题的?我也有同样的问题。在我的例子中(Symfony,使用带有图像“mariadb:10.5.8”的Docker),解决方案是在配置中设置正确的
server\u版本
:
doctrine:
dbal:
server_version: '5.7' # (this was previously incorrect in my setting!)
到
执行此操作并重新启动Docker后,diff
为空(“在映射信息中未检测到任何更改”)
所有信用都归于“tristanbes于2018年4月4日发表评论”的帖子,见以下链接:
我也有同样的问题。在我的例子中(Symfony,使用带有图像“mariadb:10.5.8”的Docker),解决方案是在配置中设置正确的
server\u版本
:
doctrine:
dbal:
server_version: '5.7' # (this was previously incorrect in my setting!)
到
执行此操作并重新启动Docker后,diff
为空(“在映射信息中未检测到任何更改”)
所有信用都归于“tristanbes于2018年4月4日发表评论”的帖子,见以下链接: