Я хотел бы задать вопрос тем, кто использует 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"
, но тоже не сработало
Как вы решили эту проблему?