Я не уверен, что это ошибка, но мне кажется, что это похоже на меня.Doctrine/Symfony сгенерировал миграцию не в порядке
Когда я генерирую миграцию с использованием метода generate-migrations-diff, в котором участвуют таблицы с внешними ключами в Symfony, результаты миграции выглядят неработоспособными.
Например, если у меня есть внешний ключ в таблице A в таблице B, и я удаляю таблицу B и ссылочное поле в таблице A, первое перемещение уменьшает таблицу B и столбец в таблице A, тогда как вторая миграция затем сбрасывает ограничение внешнего ключа в таблице A. Первая миграция не работает, поскольку поле в таблице A с ограничением внешнего ключа не может быть удалено, а также не может быть удалена таблица B из-за ограничения внешнего ключа.
Должно произойти, что ограничение внешнего ключа должно быть сброшено первым, а затем таблица и поля должны быть удалены.
Я использую mysql 5.1.37 как свою СУБД.
Вот некоторые из сгенерированного кода:
class Version94 extends Doctrine_Migration_Base
{
public function up()
{
$this->dropTable('B');
$this->removeColumn('A', 'b_id');
}
.
.
.
class Version95 extends Doctrine_Migration_Base
{
public function up()
{
$this->dropForeignKey('A', 'a_b_id_b_id');
}