Bonjour à tous,
dans mon schéma, j'ai une relation n-n déclarée comme suit (.yml résumé) :
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.
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
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 ?
Partager