Доктрина 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 таблицами и без в любых отношениях вышеприведенная команда работает прекрасно.

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

[Doctrine\ORM\Mapping\MappingException]

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

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

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

Картхик

Author: Karthik, 2011-07-28

1 answers

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

У инструмента доктрины также есть проблема с кэшированием, поэтому, пожалуйста, убедитесь, что вы переименовываете базу данных каждый раз, когда вносите изменения, и меняете ее в своей конфигурации zend.

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

 12
Author: Karthik, 2011-07-28 21:08:34