错误:尝试在Doctrine 2.0 CLI中创建实体时“表上不存在索引”

时间:2011-04-28 03:38:35

标签: doctrine-orm entities

我有一个mySQL数据库。我试图让Doctrine2从MySQL模式创建实体。我用我们的生产数据库尝试了这个,并得到以下错误:

  

[Doctrine \ DBAL \ Schema \ SchemaException]表'用户上不存在索引''

然后我创建了一个只有一个表的简单测试数据库,只有三个字段:自动增量主键字段和三个varchar字段。当试图让doctrine从这个数据库创建实体时,我得到了同样的错误。

以下是我尝试为其创建权利的表格。 (应该很简单)

mysql> desc user;  
+-----------+-------------+------+-----+---------+----------------+  
| Field     | Type        | Null | Key | Default | Extra          |  
+-----------+-------------+------+-----+---------+----------------+  
| iduser    | int(11)     | NO   | PRI | NULL    | auto_increment |  
| firstname | varchar(45) | YES  |     | NULL    |                |  
| lastname  | varchar(45) | YES  |     | NULL    |                |  
| username  | varchar(45) | YES  |     | NULL    |                |  
+-----------+-------------+------+-----+---------+----------------+  
4 rows in set (0.00 sec)  

这是我用来尝试创建所述实体的命令:

./doctrine orm:convert-mapping --from-database test ../models/test

我正在跑步:

  • 5.1.49-1ubuntu8.1(Ubuntu)
  • mysql Ver 14.14 Distrib 5.1.49,for readian 6.1 for debian-linux-gnu(i686)
  • Doctrine 2.0.1

1 个答案:

答案 0 :(得分:2)

我现在面临同样的问题。我已将问题追溯到未正确识别/设置的主键。默认值是boolean(false),它被强制转换为字符串''。 Doctrine随后无法找到此属性的索引。 ; - )

解决方案:定义PRIMARY KEY。