2013-05-06 2 views
0

Symfony2에서 Doctrine을 사용하면 기존 데이터베이스 스키마에서 생성 된 리버스 엔지니어링 된 엔티티로 프로젝트를 시작할 수 있습니다. 그것은 매우 잘 문서화되어 있습니다 here. 여러 데이터베이스 (here에 설명되어 있음)를 사용할 때 기본값이 아닌 데이터베이스의 데이터를 리버스 엔지니어링하는 방법은 언급하지 않았습니다. Symfony Doctrine은 여러 데이터베이스에서 엔티티를 생성합니다.

내가 솔루션 here을 발견,이 같은 작품 :

php app/console doctrine:mapping:convert --em="troller" --from-database yml ./src/NAMESPACE/NAMEBundle/Resources/config/doctrine/metadata/orm 

을하지만, 난 그냥 두 번째 엔티티 관리자가 존재하지 않는 것처럼 예외를 받고 있어요. 비록 내가 docs에 따라 config.yml을 가지고있다.

[InvalidArgumentException]        
Doctrine ORM Manager named "troller" does not exist. 

아이디어가 있으십니까?

답변

3

entity manager을 "troller"이름으로 지정 했습니까?

당신이 예에서 (app/config/config.yml 파일에) 같은 코드의 조각과

orm: 
    default_entity_manager: default 
    entity_managers: 
    default: 
     connection:  default 
     mappings: 
     AcmeDemoBundle: ~ 
     AcmeStoreBundle: ~ 
    troller: 
     connection:  troller 
     mappings: 
     YourTrollerBundle: ~ 

을 수행 할 수 있습니다, 당신이 정의한 두 개의 엔티티 관리자는 defaulttroller했다. 기본 엔터티 관리자는 AcmeDemoBundleAcmeStoreBundle의 엔터티를 관리하고, troller 엔터티 관리자는 YourTrollerBundle의 엔터티를 관리합니다. 또한 각 엔티티 관리자마다 하나씩 두 개의 연결을 정의했습니다.

Obiously enaugh, 새 연결 엔티티 관리자를하지 않는 정의 : 당신은 또한 "연결 매개 변수"를 지정해야합니다의

troller: 
    driver: "%database_driver2%" 
    host:  "%database_host2%" 
    port:  "%database_port2%" 
    dbname: "%database_name2%" 
    user:  "%database_user2%" 
    password: "%database_password2%" 
    charset: UTF8 
+0

(등등 DB 이름, 사용자, 암호, 드라이버, 등) 물론, 그것은 그것을했다. 감사. –

+0

특정 매핑 옵션을 설정하지 않을 경우 나에게 도움이됩니다. – user1954544

관련 문제