Доктрина 2 и ошибка преобразования Zend 1.11..

у меня сложный дизайн базы данных с представлениями, отношениями и т. д. Мы решили переключиться на ORM из стандартного Zend_db. Я успешно интегрировал zend 1.11 и доктрину 2.1. Все учебники там объясняет о создании всей базы данных с помощью рукописных классов. Но как насчет уже существующей базы данных с данными в нем? Я снова искал и узнал, что я должен использовать следующую команду

php orm:convert-mapping --from-database php path/where/you/want/to/store/mapping/classes

когда я делаю это для простой базы данных с 3 таблицами и без каких-либо отношений вышеуказанная команда работает прекрасно.

но когда я попытался использовать ту же команду в своей базе данных, она выдает исключение

[DoctrineORMMappingMappingException]

Property "employeeid" in "Organization_has_employees" was already declared, but it must be
declared only once

Я изменил все свое имя поля, чтобы в любой таблице не было повторяющихся имен, но все равно не повезло.

пожалуйста, помогите мне с этим. Я ломаю голову больше 3 дней.

Картик

1 ответов


после нескольких часов эксперимента я обнаружил проблему. Очевидно, что это не доктрина, это база данных, которую я разработал. Когда вы делаете много-ко-многим таблицам в MySQL Workbenck, вы вынуждены делать идентифицирующие отношения, которые создают другую таблицу и создают составные ключи из родительских таблиц. Пожалуйста, убедитесь, что вы называете эти первичные ключи по-другому или, если возможно, удалите composit keys и имейте это как просто неидентифицирующее отношение. Добавьте еще один столбец с именем id и получите следующее поле как первичный ключ и автоматическая нумерация

Doctrine tool также имеет проблему с кэшированием, поэтому убедитесь, что вы переименовываете базу данных каждый раз, когда вносите изменения и меняете ее в Zend config.

надеюсь, это поможет кому-то там. Если у вас все еще есть проблемы, пожалуйста, разместите свои вопросы здесь, я смогу ответить на него.