Я настроил 2 EntityManager
в своем проекте (по умолчанию em2).Похоже, ошибки не появлялись, но, хотя я указал папку для разделения сущностей, связанных с каждым EntityManager
, Doctrine продолжает создавать таблицы, связанные с em2, в базе данных по умолчанию (в настоящее время используется doctrine:schema:update
, как в тяжелой разработке).время).Что мне не хватает?Я также пытался создать команду, используя опцию --em
, но она по-прежнему имеет то же нежелательное поведение.
doctrine:
dbal:
default_connection: default
connections:
default:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
em2:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
schema_filter: ~^(?!m_sqlviewstate)~
url: '%env(resolve:DATABASE_EM2_URL)%'
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
# auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: false
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
em2:
connection: em2
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
Em2:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Em2'
prefix: 'App\Entity\Em2'
alias: Em2
EDIT : я пытался удалить объекты em2 из Entity
папка.Похоже, это сработало в отношении генерации таблиц, то есть у меня больше нет таблиц, генерируемых сущностями em2, в базе данных по умолчанию.
Однако теперь я получаю сообщение об ошибке в отношении сущностей связки.
Класс 'App \ Entity \ Shop \ User' не найден в пространствах имен, сконфигурированных для цепочки Lch \ MenuBundle \ Entity
AFAIK, похоже, это изДело в том, что мне нужно было бы вручную зарегистрировать каждый пакет dir / namespace по умолчанию EntityManager
.Я не понимаю почему, потому что значение по умолчанию помечено как auto_mapping
:
Ниже измененной части для orm
:
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
em2:
connection: em2
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
Em2:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Em2Entity'
prefix: 'App\Em2Entity'
alias: Em2