Может кто-нибудь объяснить следующее сообщение об ошибке проверки схемы доктрины:
Вот определение ORM yaml для каждого объекта в отношениях manyToMany, созданное в соответствии с разделом 5.9 документации.
Rep\Bundle\ProjectBundle\Entity\User:
type: entity
table: User
fields:
id:
id: true
type: integer
unsigned: true
nullable: false
generator:
strategy: AUTO
username:
type: string
length: 25
fixed: false
nullable: false
salt:
type: string
length: 32
fixed: false
nullable: false
password:
type: string
length: 40
fixed: false
nullable: false
email:
type: string
length: 60
fixed: false
nullable: false
manyToMany:
roles:
targetEntity: UserRole
inversedBy: users
joinTable:
name: UserRoleLookup
joinColumns:
user_id:
referencedColumnName: id
inverseJoinColumns:
user_role_id:
referencedColumnName: id
lifecycleCallbacks: { }
И инверсная конфигурация yaml UserRole:
Rep\Bundle\ProjectBundle\Entity\UserRole:
type: entity
table: UserRole
fields:
id:
id: true
type: integer
unsigned: true
nullable: false
generator:
strategy: AUTO
name:
type: string
length: 50
fixed: false
nullable: false
manyToMany:
users:
targetEntity: User
mappedBy: roles
lifecycleCallbacks: { }
Вот схема таблицы пользователя:
CREATE TABLE `User` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
`salt` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`password` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Схема таблицы UserRole:
CREATE TABLE `UserRole` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
И схема UserRoleLookup:
CREATE TABLE `UserRoleLookup` (
`user_id` int(11) unsigned NOT NULL,
`user_role_id` int(11) unsigned NOT NULL,
PRIMARY KEY (`user_id`,`user_role_id`),
KEY `user_role_id` (`user_role_id`),
CONSTRAINT `userrolelookup_ibfk_2` FOREIGN KEY (`user_role_id`) REFERENCES `userrole` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `userrolelookup_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Как вы можете видеть, это довольно упрощенная настройка со справочной таблицей для определения пользовательских ролей или набора пользователей в заданной роли пользователя. Тем не менее, я получаю эту неприятную ошибку синхронизации. Я ничего не читал здесь или в Интернете, который отвечает на этот вопрос в каких-либо кратких подробностях, я надеялся, что кто-то сможет прояснить, могу ли я оставить эту конфигурацию и проигнорировать эту ошибку?