bien. Intenté editar tu publicación original pero está esperando la revisión por parte de un compañero. No estoy seguro de cuánto tiempo lleva eso. Trate de cambiar su configuración para:
doctrine:
dbal:
default_connection: default
connections:
default:
dbname: old_project
user: root
password: 123123
host: 1.1.1.1
port: 1
# Make an explicit connection just for clarity
old_project:
dbname: old_project
user: root
password: 123123
host: 1.1.1.1
port: 1
electra:
dbname: electra
user: root
password: 123123
host: 2.2.2.2
port: 2
orm:
# Humor me and add these
auto_generate_proxy_classes: %kernel.debug%
# auto_mapping: true
default_entity_manager: electra
entity_managers:
# Make an explicit old_project em so default does not confuse us
old_project:
connection: old_project
mappings:
XXDemoBundle: ~
electra:
connection: electra
mappings:
XXDemoBundle: ~
default:
connection: default
mappings:
XXDemoBundle: ~
Ahora completamente soplar a la memoria caché sólo para estar seguro a continuación, ejecute:
php app/console doctrine:mapping:info --em electra
php app/console doctrine:mapping:info --em old_project
Debe obtener resultados idénticos. Probé esto en mi sistema, así que estoy bastante seguro de que si no lo hace, entonces tendrá algún error tipográfico en alguna parte.
Así que la información de asignación está funcionando. El siguiente paso es verificar que ambas bases de datos coincidan con el esquema de su entidad. Haga esto:
php app/console doctrine:schema:update --em electra --dump-sql
php app/console doctrine:schema:update --em old_project --dump-sql
Ninguno debe producir ninguna salida. Si lo hace, significa que su base de datos no coincide con sus entidades y que debe ser resuelta (posiblemente utilizando la opción --force) antes de que las consultas funcionen.
Una vez que las bases de datos están sincronizadas, probablemente debería usar doctrine: query: dql y hacer una consulta de prueba en contra de ambos gerentes. Luego regrese a su código.
=========================================
Se ahora se ha entendido que el objetivo real es que dos gerentes de entidades apunten al mismo conjunto de entidades, pero de alguna manera indican que cada administrador de entidades debe limitarse a un determinado conjunto de esas entidades. Y eso no es algo que el S2 soporte de manera inmediata.
Puede consultar el manual de Doctrine y ver cómo maneja los metadatos de entidad y quizás hacer algo con eso, pero eso podría complicarse.
Lo único que realmente ofrece S2 es la capacidad de vincular un administrador de entidades a todas las entidades en uno o más paquetes utilizando el atributo de asignación. Si quisiera compartir, digamos tres de las siete entidades de un paquete con otro paquete, simplemente recrearía esas entidades en el segundo paquete. Posiblemente extendiendo la clase para evitar la duplicación del código.
Creo que es posible que desee modificar un poco su enfoque. Si tiene un conjunto de entidades centrales compartidas con múltiples paquetes, colóquelas en su propio paquete. Cada paquete siguiente puede agregar entidades adicionales.
Por favor enviar un ejemplo sencillo de lo que se caiga. Ambas conexiones apuntan a la misma base de datos? Parece que también debería haber auto_generate_proxy_classes allí y tal vez auto_mapping, pero tal vez no. Pruebe "php app/console doctrine: mapping: info --em" con el primero y luego con el otro administrador de entidades. – Cerad
¡Hola! Uso dos bases de datos diferentes con dos conexiones diferentes. El mapeo: la información dice que no tengo entidades manejadas por el administrador de entidades predeterminado, todas mis entidades son manejadas por electra. – gabrielthorn
Eso significa que tienes un problema de configuración en alguna parte. Por favor, publique sus asignaciones de conexión. doctrine: mapping: info debe devolver la misma lista de entidades para ambos ems. Asegúrese de tener la línea auto_generate y de que está trabajando en modo de desarrollo. – Cerad