我有一个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
我正在跑步:
答案 0 :(得分:2)
我现在面临同样的问题。我已将问题追溯到未正确识别/设置的主键。默认值是boolean(false),它被强制转换为字符串''。 Doctrine随后无法找到此属性的索引。 ; - )
解决方案:定义PRIMARY KEY。