В миграции генерится один и тот же код

Тема в разделе "PHP", создана пользователем verfaa, 19 дек 2019.

XEvil 4.0 Релиз Состоялся!
Метки:
Модераторы: latteo
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    407
    Симпатии:
    47
    Использую symfony 4.3
    В проекте имеются разные сущности, которые отображаются на разные таблицы БД.
    Но в процессе разработки при запуске команды doctrine:migrations:diff в миграции генерится кроме всего прочего один и тот же код.

    Код:
            $this->addSql('ALTER TABLE user_users ALTER new_email TYPE VARCHAR(255)');
            $this->addSql('ALTER TABLE user_users ALTER new_email DROP DEFAULT');
    
    Если изменения в сущностях есть - этот код генерится вместе с другим SQL, если изменений нет генерится только этот код. Я уже пытался применять эту миграцию, но в следующих миграциях этот код все равно генерится как и раньше.

    В сущности юзер это поле выглядит как обычно

    Код:
        /**
         * @var Email|null
         * @ORM\Column(type="user_user_email", name="new_email", nullable=true)
         */
        private $newEmail;
    
    В чём может быть проблема?
     
  2. Minor

    Minor

    Регистр.:
    16 авг 2012
    Сообщения:
    246
    Симпатии:
    101
    Просто предположение - у тебя класс миграции не наследуется?
     
  3. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.602
    Симпатии:
    1.516
    Проверь версию бд в конфиг файле и в реальности, попробуй сбросить кеш
     
  4. garphild

    garphild Постоялец

    Регистр.:
    19 май 2009
    Сообщения:
    56
    Симпатии:
    31
    Для nullable=true должен быть default указан. Иначе альтертейбл отрабатывает не совсем корректно. Попробуйте добавить дефолтное значение и запустите миграцию. Сейчас у Вас реальный тип и параметры колонки не соответствуют заявленным в атрибутах аннотации. Скорее всего проблема в этом. Если что в доках это дело немного описано.