2014-05-23 11 views
7

여러 엔티티 관리자가있는 새 프로젝트를 설치했습니다. 지정한 엔티티 관리자가 아닌 모든 장치에 대해 Fixtures를로드하려고 할 때 MappingException이 발생하여 데이터 고정 장치를로드하려고 시도합니다. 당신은 내가 symblog 튜토리얼 물건에 대한 설정을 별도의 연결 및 엔티티 관리자를했습니다 볼 수 있듯이 여기 Symfony doctrine을 사용하는 방법 : fixtures : 여러 엔티티 관리자를로드 하시겠습니까?

내 config.yml

doctrine: 
    dbal: 
     connections: 
      default: 
       driver: %database_driver% 
       host:  %database_host% 
       port:  %database_port% 
       dbname: %database_name% 
       user:  %database_user% 
       password: %database_password% 
       charset: %database_charset% 
      symblog: 
       driver: %database_driver_blog% 
       host:  %database_host_blog% 
       port:  %database_port_blog% 
       dbname: %database_name_blog% 
       user:  %database_user_blog% 
       password: %database_password_blog% 
       charset: %database_charset_blog% 

    orm: 
     auto_generate_proxy_classes: %kernel.debug% 
     entity_managers: 
      default: 
       connection: default 
       mappings: 
        IncompassAuthBundle: ~ 
        IncompassUserBundle: ~ 
        IncompassApiBundle: ~ 
        IncompassSurgeryBundle: ~ 
        IncompassVendorBundle: ~ 
        IncompassHospitalBundle: ~ 
       dql: 
        datetime_functions: 
         date: Mapado\MysqlDoctrineFunctions\DQL\MysqlDate 
      symblog: 
       connection: symblog 
       mappings: 
        IncompassBlogBundle: ~ 
       dql: 
        datetime_functions: 
         date: Mapado\MysqlDoctrineFunctions\DQL\MysqlDate 

에서 교리의 섹션입니다. 내가

php app/console doctrine:fixtures:load --em=default 

내가 해보

이 내가

php app/console doctrine:fixtures:load --em=symblog 

내가

Careful, database will be purged. Do you want to continue Y/N ?Y 
    > purging database 
    > loading [1] Incompass\BlogBundle\DataFixtures\ORM\BlogFixtures 
    > loading [1] Incompass\SurgeryBundle\DataFixtures\ORM\SurgeryStatusFixtures 

    [Doctrine\Common\Persistence\Mapping\MappingException]                     
    The class 'Incompass\SurgeryBundle\Entity\SurgeryStatus' was not found in the chain configured namespaces Incompass\BlogBundle\Entity 

doctrine:fixtures:load [--fixtures[="..."]] [--append] [--em="..."] [--purge-with-truncate] 
을 해보

Careful, database will be purged. Do you want to continue Y/N ?Y 
    > purging database 
    > loading [1] Incompass\BlogBundle\DataFixtures\ORM\BlogFixtures 

    [Doctrine\Common\Persistence\Mapping\MappingException]                            
    The class 'Incompass\BlogBundle\Entity\Blog' was not found in the chain configured namespaces Incompass\AuthBundle\Entity, Incompass\UserBundle\Entity, Incompass\ 
    SurgeryBundle\Entity, Incompass\VendorBundle\Entity, Incompass\HospitalBundle\Entity, FOS\UserBundle\Model               

doctrine:fixtures:load [--fixtures[="..."]] [--append] [--em="..."] [--purge-with-truncate] 

그래서 콘솔 명령은 "--em = foobar"옵션을 무시하는 것처럼 보이고 찾은 모든 데이터 픽스쳐를로드하려고합니다.

doctrine : fixtures : load를 사용하여 지정된 엔티티 관리자 만 사용하려면 어떻게해야합니까? 필리스가 나는 FixturesBundle에 내 모든 설비를 이동 블로그 비품이

php app/console doctrine:fixtures:load --fixtures=src/Incompass/FixturesBundle/DataFixtures/ORM 

않았다 언급 한

+1

나는 그것이 거라고 생각하지 않습니다를 엔티티 관리자를 지정했다 제공된 엔티티 관리자가 조명기를 필터링합니다. 당신이해야 할 일은'--fixtures' 경로를 지정하는 것입니다. – Phil

답변

7

는 또한

php app/console doctrine:fixtures:load --fixtures=src/Incompass/BlogBundle/DataFixtures/ORM --em=symblog