【发布时间】:2016-09-17 22:42:14
【问题描述】:
我尝试从预先存在的数据库中的表创建实体:
php bin/console doctrine:mapping:import --force AppBundle yml --filter="someTable"
但是出现了一条消息:
表 someTable 没有主键。教义不支持反向 从没有主键的表中进行工程。
我检查了一下,在数据库中,有些表没有任何 PK(我无法更改)。 所以我读了这个页面:http://symfony.com/doc/current/doctrine/multiple_entity_managers.html ...并在 github 上尝试了这个解决方案: https://github.com/doctrine/DoctrineBundle/issues/441
我的 config.yml 是这样的:
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
mapping_types:
enum: string
forMapping:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
schema_filter: someTable
orm:
auto_generate_proxy_classes: "%kernel.debug%"
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
AppBundle:
type: yml
dir: Resources/config
forMapping:
connection: forMapping
mappings:
AppBundle:
type: yml
dir: Resources/config
但是当我尝试时:
php bin/console doctrine:mapping:import --em=forMapping --filter="someTable" AppBundle yml
我明白了:
[InvalidArgumentException] 名为“forMapping”的 Doctrine ORM 管理器不存在。
清空缓存,但没有。任何帮助表示赞赏。
MC
【问题讨论】:
-
删除 auto_mapping 行。
标签: php doctrine-orm symfony