I created two simple entities https://github.com/stfalcon/BlogBundle/tree/master/Entity
And generated migrations diff https://github.com/stfalcon/portfolio/blob/master/app/DoctrineMigrations/Version20110520075206.php
Command doctrine:migrations:migrate works fine. But I get error when try downgrade last migration:
Migrating down to 20110520062748 from 20110520075206
-- reverting 20110520075206
-> ALTER TABLE blog_posts_tags DROP FOREIGN KEY
Migration 20110520075206 failed during Execution. Error SQLSTATE[HY000]: General error: 1005 Can't create table 'stfalcon_com_development.#sql-5af_119' (errno: 150)
SQLSTATE[HY000]: General error: 1005 Can't create table 'stfalcon_com_development.#sql-5af_119' (errno: 150)
This is same bug as in my issue: #32, which i report 2 month ago.
Problem in methods Doctrine\DBAL\Platforms\AbstractPlatform::getDropForeignKeySQL() and Doctrine\DBAL\Platforms\AbstractPlatform::getCreateForeignKeySQL()
This methods do not receive FK name and don't put it in sql dump. While executing dump, mysql autogenerate FK names, but at the migration generation moment doctrine knowns nothing about them.
I think, doctrine must generate this names and put it into the schema.
Autogenerated migrations in mysql with fk are unusable.
Fixed for 2.0.x and 2.1.x