0

问题

没有以前的迁移待处理,我运行:

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 参数)
4

1 回答 1

0

@Ocramius 和 @Lighthart 建议,这是一个纯 SQL 问题。它来自产生不一致 SQL 的有缺陷的 Doctrine 实体声明。

问题中描述的错误与列级别的不一致有关,键是 int(11) 和外键 varchar(255)。

于 2013-03-27T09:25:35.437 回答