2
これはバグかどうかはわかりませんが、確かに私には似ています。Doctrine/Symfonyが順不同でマイグレーションを生成しました
私は、symfonyに外部キーを持つテーブルを含むgenerate-migrations-diffを使用して移行を生成すると、結果として起こる移行が順不同であるようです。
たとえば、テーブルAからテーブルBへの外部キーがあり、テーブルBとテーブルAの参照フィールドを削除すると仮定すると、最初の移行はテーブルBとテーブルAの列を削除しますが、テーブルAの外部キー制約を削除できません。また、外部キー制約のためテーブルBを削除することもできません。
外部キー制約を最初に削除してから、、次にテーブルとフィールドを削除する必要があります。
私は自分のDBMSとして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');
}