Как предотвратить создание doctrine бесполезных миграций с DEFAULT NULL - PullRequest
0 голосов
/ 16 июня 2020

Я хотел бы задать вопрос тем, кто использует Mysql + Doctrine ORM + Doctrine миграции. У меня есть ассоциация:

    /**
     * @var User
     *
     * @ORM\ManyToOne(targetEntity="User")
     * @ORM\JoinColumn(nullable=true)
     */
    protected $sender;

(ключевой момент здесь nullable=true. Некоторые атрибуты намеренно оставлены. снова, не ожидается новых миграций сгенерировано

но нет, я вижу новый файл со строкой CHANGE sender_id sender_id VARCHAR(255) DEFAULT NULL

Это означает, что ничего не будет изменено, однако doctrine dbal под Mysql драйвер не видит из аннотаций сущностей, что DEFAULT NULL

Я пытался добавить @ORM\Column(options={"default": NULL}).

Это помогло предотвратить DEFAULT NULL в миграциях, но в этом случае FK и индекс были отброшены.

Пробовал также добавить columnDefinition="VARCHAR(255) DEFAULT NULL", но тоже не сработало

Как вы решили эту проблему?

...