繁体   English   中英

从实体文件创建迁移

[英]Create migration from entity file

我有一些表,已修改。 为某些关系添加了一些注释:

cascade={"persist", "remove"}

在 SQL 中,字段只有对另一个表的引用。

现在,我想创建一个迁移文件,并运行bin/console doctrine:migrations:diff ,但它没有为此添加约束修改。

是否可以仅为该实体生成迁移文件?

Cascade persist 不会由您的数据库处理,因为它与 doctrine 如何使用 UnitOfWork 处理实体有关。

级联删除可以通过 doctrine 或您的数据库进行管理。

与使用onDelete相反,使用cascade={"remove"}不会影响您的数据库模式。

这就是您看不到任何更改的原因,因为没有要执行的 SQL 来更新您的实体模式。

基本上,当$entityManager用于remove实体时, cascade={"remove"}将仅由 doctrine 及其 UnitOfWork 使用。

这就是为什么如果您在 SQL 中执行删除其中一个条目的原始查询,级联选项将不会执行任何操作,如果您使用原始 sql 而不是 Doctrine DQL,这确实会导致错误。

因此,如果您不在代码中使用任何会删除条目的原始 sql,那么什么都不做也没关系。

否则,您可以使用 onDelete 来修改您的数据库结构。

你只需要像这样remove

cascade={"persist"}, onDelete="CASCADE"

如果您使用它来了解更多信息,请务必查看文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM