Доктрина МногоеОдин наУстановкеНет - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть 2 таблицы, одна из которых является продуктом, продукт может иметь только одну торговую марку, но есть несколько продуктов, которые могут иметь одинаковую торговую марку.

Я пытаюсь установить onDelete = "Null" в поле brand_idПродукт, когда я удаляю марку, но он не работает: S

Вот продукт

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Brand")
     * @ORM\JoinColumn(name="brand_id", referencedColumnName="id", onDelete="SET NULL")
     */
    private $brand;

вот бренд

     * @ORM\OneToMany(targetEntity="App\Entity\Product", mappedBy="brand")
     * 
     */
    private $productTypes;

это то, что я получаю от своегоdump-sql:

    CREATE UNIQUE INDEX UNIQ_29D6873E84D1E8E7 ON offer (product_cat_id);
     ALTER TABLE sym_order DROP FOREIGN KEY FK_B88A9287E7A1254A;
     ALTER TABLE sym_order ADD CONSTRAINT FK_B88A9287E7A1254A FOREIGN KEY (contact_id) REFERENCES sym_contact (id);
     ALTER TABLE sym_product_type DROP FOREIGN KEY FK_5052FAC44F5D008;
     ALTER TABLE sym_product_type DROP FOREIGN KEY FK_5052FAC44F5D008;
     ALTER TABLE sym_product_type ADD CONSTRAINT FK_5052FAC44F5D008 FOREIGN KEY (brand_id) REFERENCES brand (id) ON DELETE SET NULL;
     DROP INDEX uniq_5052fac44f5d008 ON sym_product_type;
     CREATE INDEX IDX_5052FAC44F5D008 ON sym_product_type (brand_id);
     ALTER TABLE sym_product_type ADD CONSTRAINT FK_5052FAC44F5D008 FOREIGN KEY (brand_id) REFERENCES brand (id);
     ALTER TABLE sym_stock DROP FOREIGN KEY FK_695577F14959723;
     ALTER TABLE sym_stock CHANGE status status TINYINT(1) NOT NULL;
     ALTER TABLE sym_stock ADD CONSTRAINT FK_695577F14959723 FOREIGN KEY (product_type_id) REFERENCES sym_product_type (id) ON DELETE SET NULL;

Обратите внимание также, что у меня возникает ошибка при попытке обновить --force, но я полагаю, что все еще выполняется все остальное, верно?

Спасибо за вашу помощь;)

1 Ответ

0 голосов
/ 24 сентября 2019

Если при выполнении

php bin/console doctrine:schema:update --force

возникает ошибка при выполнении последней успешной команды.Вероятно, это ваша проблема, потому что аннотации, кажется, определены правильно.

Вы можете проверить неисполненные команды с помощью:

php bin/console doctrine:schema:update --dump-sql

Если каждая команда SQL выполнена правильно, эта команда сообщит вам, что ваша схема работаетна сегодняшний день.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...