2012-01-23 7 views
0

데이터베이스 추상화 계층으로 propel orm을 사용하고 있습니다. 다른 모듈에 대해 다른 schema.xml 파일을 정의하려고합니다. 예. 사용자 및 역할을 처리하기위한 user.xml.schema 또는 응용 프로그램 모델의 app.schema.xml.외부 스키마로 잘못된 테이블 접두어를 Propel하십시오.

제 문제는 user.schema.xml의 user 테이블을 참조하고 싶습니다. 이 태그를 처리 할 수 ​​있지만 사용자 스키마 테이블에 다른 테이블 접두사를 사용하려고합니다. propel-gen을 실행하면 두 개의 sql 파일이 생성되지만 (하나는 user.schema 용이고 하나는 app.schema 용), 문제는 사용자 스키마 테이블이 두 번 생성된다는 것입니다. 먼저 사용자 스키마 파일의 올바른 표 접두사를 사용하고 나머지는 앱 스키마 파일의 접두사를 사용합니다. 외래 키는 잘못된 테이블 (app.schema.xml 접두사가있는 테이블의 테이블)을 참조합니다.

이 동작을 방지 할 방법이 없습니다. 힌트가 있습니까?

답변

1

하나의 데이터베이스에 다른 테이블 접두어를 추가 할 수 없으며 태그에 tablePrefix 특성을 추가 할 수 없습니다. 좀 더 설명 하겠지만, 같은 데이터베이스에 대해서도 XML 스키마 당 tablePrefix을 지정할 수는 있지만, 관계를 추가하려고하면 오류가 발생합니다. 버그인지 아닌지는 AFAIK입니다. 당신이 truepropel.packageObjectModel 빌드 속성을 설정하지 않을 경우 tablePrefix는 관계없이 table 수준 ...에서 정의되어야한다, 당신은 두 깨끗한 SQL 파일을 가져 (또는 것

당신은 읽을 수 있습니다.. http://www.propelorm.org/reference/schema.html을 그래서 생각 , 불행히도하고 싶은 일을 할 수는 없습니다. BTW, 달성하고자하는 것은 Propel 문서에 multi component data model이라고합니다.

+0

다중 구성 요소 데이터 모델의 힌트를위한 Thangx 두 스키마 파일 사이의 abled 관계와 내 컨트롤러 클래스에서 다른 스키마의 개체를 다시로드하십시오. 이제는 SQL이 좋으며 원하는대로이 방식으로 처리 할 수 ​​있습니다. –

관련 문제