从实体文件创建迁移

Create migration from entity file

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

cascade={"persist", "remove"}

在 SQL 中,字段仅引用另一个 table。

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

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

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

级联删除可以由学说或您的数据库管理。

与使用 onDelete.

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

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

基本上,当 $entityManager 用于 remove 实体时,cascade={"remove"} 只会被条令及其工作单元使用。

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

因此,如果您不在代码中使用任何会删除条目的原始 sql,那么什么都不做就可以了。

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

你只需要为 remove 这样做:

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

如果您使用它,请务必检查documentation以了解更多信息。