Symfony2, DoctrineFixturesBundle, не может загружать фикстуры из-за ограничения внешнего ключа

У меня есть объект "Компания", где у каждой компании есть другая материнская компания в иерархической древовидной структуре.

В приложении все работает нормально, поэтому я уверен, что мои классы Entity верны.

Проблема в том, что если в базе данных уже есть контент, то выполнение

doctrine:fixtures:load

дает следующую ошибку:

[PDOException]                                                                                                                                                                                                                                              
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails

Я почти уверен, что проблема в том, что load: fixtures нужно усекать таблицу, но это невозможно, не получив этого ошибка.

Я не уверен, как решить эту проблему, не взламывая что-то в Doctrine, чтобы отключить ключевые ограничения перед чисткой. Не совсем долгосрочное решение.

Другие отношения в структуре данных не вызывают проблем, поскольку доктрина, кажется, очищает в правильном порядке, чтобы избежать проблем, но с таблицей Company, ссылающейся на себя, она падает.

Вот моя сущность.

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..... */

}

Я использую Symfony 2.0.7 и последние deps, а также MySQL 5.5

7
задан j0k 12 November 2012 в 12:11
поделиться