Bonjour à tous,

dans mon schéma, j'ai une relation n-n déclarée comme suit (.yml résumé) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
CustomerOrder:
  columns:
    blabla
  relations:
    Status:
      foreignAlias: Orders
      class: OrderStatus
      refClass: CustomerOrderHistory

OrderStatus:
  columns:
    blabla

CustomerOrderHistory:
  columns:
    customer_order_id: { type: integer, primary: true }
    order_status_id: { type: integer, primary: true }
  relations:
    CustomerOrder:
      foreignAlias: History
      onDelete: cascade
      onUpdate: cascade
      orderBy: rank ASC
    OrderStatus:
      onDelete: restrict
      onUpdate: cascade
le problème se trouve au niveau de la déclaration onDelete en rouge : la tâche doctrine-data-load plante à cause de cette contrainte car elle n'arrive pas à supprimer la table OrderStatus.

La solution rapide et sale consiste évidemment à supprimer la contrainte mais je n'aime pas ce genre de bidouilles, la contrainte sur le onDelete est une sécurité que je ne veux pas faire sauter.

La question est alors : comment faire pour que le data-load supprime les tables dans le bon ordre ? Il suffirait qu'il supprime d'abord la table CustomerOrder (ce qui supprimerait en cascade les entrées dans CustomerOrderHistory) pour que les choses se passent bien. Y a t'il moyen de lui indiquer cet ordre quelque part dans les fichiers .yml ?