[英]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.