Doctrine 如何将删除与原则1.2级联?

Doctrine 如何将删除与原则1.2级联?,doctrine,symfony1,cascade,doctrine-1.2,cascading-deletes,Doctrine,Symfony1,Cascade,Doctrine 1.2,Cascading Deletes,我一直在与ORM理论斗争 根据,应该使用onDelete:CASCADE进行数据库级级联(这就是我在这里尝试实现的) 一个完整的例子可以在屏幕上看到 然而,在我的模式中,所有这些级联规范都被忽略了 以下是相关摘录: Advancement: columns: association_id: type: integer(4) notnull: true task_id: type: integer(4) notnull: true

我一直在与ORM理论斗争

根据,应该使用
onDelete:CASCADE
进行数据库级级联(这就是我在这里尝试实现的)

一个完整的例子可以在屏幕上看到

然而,在我的模式中,所有这些级联规范都被忽略了

以下是相关摘录:

Advancement:
  columns:
    association_id:
      type: integer(4)
      notnull: true
    task_id:
      type: integer(4)
      notnull: true
    state:
      type: enum
      values: ['todo', 'current', 'done', 'cancelled']
      notnull: true
  relations:
    Association:
      class: Association
      local: association_id
      foreignType: one
      onDelete: CASCADE
    Task:
      class: Task
      local: task_id
      foreignType: one
      onDelete: CASCADE
当然,任务和关联表的定义是正确的。为了避免一个太长的问题,我不会在这里发布它们,但是如果有必要的话,请询问

以下是生成的SQL(linebreaks):

没有
级联
(顺便说一下,
引用
)的痕迹。当然,级联不起作用,我必须通过修改默认的后端操作手动实现它


有人知道我做错了什么吗

如果您的RDBMS(是MySQL吗?)不支持级联,我认为doctrine会闭嘴。如果将MySQL与MyISAM存储引擎一起使用(顺便说一句,它也不支持
引用
)。如果我是你,我会尝试直接与你的RDBMS客户端创建一个级联,只是为了检查它是否可行。

Dority在生成的sql(data/sql/schema.sql)末尾生成外键关系,检查它们是否存在。不,我实际上已经通过所有生成的sql执行了
grep
ped,而且没有任何级联的痕迹…谢谢你的精确性!Doctrine在mysql中自动使用innodb。我使用的是SQLite3(3.6.12),因此:)您是否尝试创建一个,只是为了看看它是否适用于您的版本?
CREATE TABLE advancement
(id INTEGER PRIMARY KEY AUTOINCREMENT,
association_id INTEGER NOT NULL,
task_id INTEGER NOT NULL,
state VARCHAR(255) NOT NULL);