Doctrine ManyToOne onDelete SetNull



>我有 2 张表,一个是产品,一个产品只能有一个品牌的 ofc,但有多个产品可以具有相同的品牌。

当我删除品牌时,我尝试在产品的brand_id字段中设置 onDelete="Null",但它不起作用:S

这是产品

/**
* @ORMManyToOne(targetEntity="AppEntityBrand")
* @ORMJoinColumn(name="brand_id", referencedColumnName="id", onDelete="SET NULL")
*/
private $brand;

这是品牌

* @ORMOneToMany(targetEntity="AppEntityProduct", mappedBy="brand")
* 
*/
private $productTypes;

这是我从我的转储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 时我遇到了错误,但我想它仍然执行其余部分吗?

感谢您的帮助;)

如果在执行时发生错误

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

执行在上次成功命令时停止。这可能是您的问题,因为注释似乎定义正确。

您可以使用以下命令检查未执行的命令:

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

如果每个 SQL 命令都正确执行,则此命令会通知您架构是最新的。

相关内容

  • 没有找到相关文章

最新更新