0

Проблема

без предыдущего миграции неурегулированных я бегу:Doctrine2 миграции внутри Symfony2 броска Exception по созданию индекса

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

Попробуйте запустить DDL SQL в MySQL CLI (вручную), а затем запустите 'SHOW ENGINE InnoDB STATUS' для получения более подробной информации. Ошибка 1005 связана с отсутствием индекса в таблице, на которую ссылается. – Ocramius

+1

Похоже, ваш пользователь mysql не имеет разрешения на создание таблиц, но предложение Ocramius необходимо для его полной отладки. – Lighthart

+0

Спасибо, я проверю его и дам вам знать – AsTeR

ответ

0

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

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

Смежные вопросы