Ошибка: «Индекс» не существует в таблице »при попытке создания сущностей в Doctrine 2.0 CLI - PullRequest
2 голосов
/ 28 апреля 2011

У меня есть база данных MySQL. Я пытаюсь заставить Doctrine2 создавать сущности из схемы MySQL. Я попробовал это с нашей производственной базой данных, и получил следующую ошибку:

[Doctrine \ DBAL \ Schema \ SchemaException] Индекс '' не существует для пользователя таблицы

Затем я создал простую тестовую базу данных только с одной таблицей и тремя полями: поле первичного ключа с автоинкрементом и три поля varchar. При попытке создать сущность доктрины из этой базы данных я получил ту же ошибку.

Вот таблица, для которой я пытался создать права. (Должно было быть просто)

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, для debian-linux-gnu (i686) с использованием readline 6.1
  • Doctrine 2.0.1

1 Ответ

2 голосов
/ 29 апреля 2011

Я столкнулся с той же проблемой прямо сейчас.Я проследил проблему до первичного ключа, который не был идентифицирован / установлен правильно.Значением по умолчанию является логическое (false), которое приводится к строке ''.Впоследствии Doctrine не удается найти индекс для этого атрибута.; -)

Решение: определить ПЕРВИЧНЫЙ КЛЮЧ.

...