@alexmixaylov

Почему не получается провалидировать базу Symfony4/Doctr?

Начинал проект на симфони2, потом обновил на 3,4 версию
нужно сделать рефакторинг и кое что переписать, решил переползти на 4 версию под шумок

Проект простой, в принципе(на сложный у меня мозгов не хватает :((( ), кое какой функционал добавился и кое что нужно сделать
и для этого пытаюсь перебраться на 4 версию
столкнулся с ситуацией, которую не могу осмыслить

теперь по делу
- перенес сущность, базу
кое что изменил делаю doctrine:schema:update --force
доктрина рапортует что все ок, например 2 queries were executed
но на самом деле кое что не обновляется
при попытке повторно сделать doctrine:schema:update --force
доктрина опять рапортует что все ок - 2 queries were executed
то есть - по факту - ничего не обновляет

потом это все хозяйство не проходит валидацию
ругается [ERROR] The database schema is not in sync with the current mapping file.

doctrine:schema:update --dump-sql показывает
ALTER TABLE sym4test CHANGE name name VARCHAR(255) DEFAULT NULL;

ругается на поля которые nullable=true (если nullable=false то ошибка пропадает, но мне нужно чтобы поле было необязательным)
код сущности привожу ниже
<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\Sym4TestRepository")
 */
class Sym4Test
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $name;

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getName(): ?string
    {
        return $this->name;
    }

    public function setName(?string $name): self
    {
        $this->name = $name;

        return $this;
    }
}
  • Вопрос задан
  • 325 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы