Миграция Doctrine2 внутри Symfony2 создает исключение при создании индекса

Эта проблема

Без предыдущей миграции я запускаю:

app/console doctrine:migration:diff
app/console doctrine:migration:migrate

Я получил эту ошибку:

ALTER TABLE session ADD CONSTRAINT FK_9955C22EA76ED395 FOREIGN KEY (user_id) REFERENCES user(id)
Migration 20130320103822 failed during Execution. Error SQLSTATE[HY000]: General error: 1005 Can't create table 'mydb.#sql-3e4_75e0' (errno: 150)

[PDOException]                                                                                    
  SQLSTATE[HY000]: General error: 1005 Can't create table 'mydb.#sql-3e4_75e0' (errno: 150)  

Дополнительные знания

  1. Я объявляю свою сущность посредством аннотации в классе.
  2. Этот код работает (но я должен запустить вручную несколько операций, которые не запускаются после такого рода исключений)

Что бы я хотел знать

  1. Что вызывает эту ошибку?
  2. Есть ли способ это исправить? (например, через обновление Doctrine или некоторые параметры MySQL)

1 ответ

Решение

По предложению @Ocramius и @Lighthart, это проблема чистого SQL. Он возник из ошибочного объявления сущности Doctrine, порождающего несовместимый SQL.

Ошибка, описанная в вопросе, была связана с несоответствием на уровне столбцов, ключ был int(11) и внешний ключ varchar(255).

Другие вопросы по тегам