2014-05-23 10 views
7

Mam nowy projekt z wieloma menedżerami encji, kiedy próbuję załadować urządzenia danych otrzymuję MappingException, ponieważ konsola próbuje załadować Urządzenia dla wszystkiego, a nie podanego przeze mnie menedżera.Jak korzystać z doktryny Symfony: urządzenia: ładowanie za pomocą wielu menedżerów encji?

Oto odcinek doktryna z mojego 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 

Jak widać mam ustawić osobny menedżer połączeń i jednostki za symblog samouczka rzeczy.

Kiedy próbuję

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

uzyskać to

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] 

Kiedy próbuję

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

uzyskać

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] 

Komenda konsoli wydaje się ignorować opcję "--em = foobar" i próbuje wczytać wszystkie znalezione urządzenia danych.

Jak mogę uzyskać doktrynę: urządzenia: ładowanie do używania tylko określonego menedżera encji?

+1

Nie sądzę, że będzie filtrować urządzenia według dostarczonego menedżera jednostek. Co powinieneś robić to określenie ścieżek '--fixtures' – Phil

Odpowiedz

7

Po Phils skomentować Przeniosłem wszystkie moje Lampy do FixturesBundle i zrobił to

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

Dla Oprawy Blog miałem również określić kierownik jednostki

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