Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何防止条令创建默认为NULL的无用迁移_Php_Doctrine Orm_Doctrine Migrations - Fatal编程技术网

Php 如何防止条令创建默认为NULL的无用迁移

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-生成的迁移带有一个

我想向那个些使用Mysql+ORM+ORM+ORM迁移的人提出这个问题 我有一个协会:

    /**
     * @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)行默认为空
  • 这意味着什么都不会改变,但是Mysql驱动程序下的dbal不会从默认为NULL的实体注释中看到

    我试图添加
    @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日发表评论”的帖子,见以下链接: