Doctrine迁移:diff忽略级联

时间:2015-06-02 20:18:43

标签: mysql symfony doctrine-orm

我在两个实体之间有ManyToOne关系,并希望在删除时使用DB(MySQL)级别级联。当我使用doctrine:migrations:diff外键是在没有ON DELETE CASCADE的情况下创建的。

所以我自己添加了这个级联,但是在下次迁移时:diff此语句已被删除。有没有什么办法可以在删除时使用DB级别级联以及doctrine:migrations?

class System {

    /**
     * @var ArrayCollection
     *
     * @ORM\OneToMany(targetEntity="Cost", mappedBy="system", cascade={"remove"})
     */
    private $costs;
}

class Cost {
    /**
     * @var System
     *
     * @ORM\ManyToOne(targetEntity="System", inversedBy="costs", cascade={"remove"})
     * @ORM\JoinColumn(name="system_id", referencedColumnName="id")
     */
    private $system;
}

1 个答案:

答案 0 :(得分:1)

您希望在JoinColumn注释中使用此选项:

     * @ORM\JoinColumn(name="system_id", referencedColumnName="id", onDelete="CASCADE")

有关详情,请访问the documentation