Ho un'entità società in cui ogni società ha un'altra società madre in una struttura gerarchica ad albero.Symfony2, DoctrineFixturesBundle, impossibile caricare i dispositivi a causa del vincolo di chiave esterna
Tutto funziona correttamente nell'applicazione, quindi sono sicuro che le mie classi Entity sono corrette.
Il problema è, se v'è già contenuto nel database allora fare
doctrine:fixtures:load
dà questo errore:
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails
Im abbastanza sicuro il problema è che il carico: infissi ha per troncare la tabella, ma non posso ottenere questo errore.
Non sono sicuro di come risolvere questo problema senza hackerare qualcosa in Doctrine per disabilitare i vincoli chiave prima dell'eliminazione. Non è davvero una soluzione a lungo termine.
Le altre relazioni nella struttura dati non causano un problema in quanto la dottrina sembra eliminare l'ordine corretto per evitare i problemi, ma con la tabella aziendale che fa riferimento a se stessi cade.
Ecco la mia entità.
class Company
{
/**
* @var integer $id
*
* @ORM\Id
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string $name
* @ORM\Column(type="string", length=100)
*/
protected $name;
/**
* @ORM\ManyToOne(targetEntity="Company", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
*/
protected $parent;
/* other properties here..... */
}
Im utilizzando Symfony 2.0.7 e le ultime dipendenze, e MySQL 5.5
Ho avuto un messaggio di errore diverso: * L'identificatore [... Questa risposta è stata la soluzione, è ancora valida, tre anni dopo (e con Symfony 2.3.25). Grazie! –