2017-09-28 1 views
1

해결 방법이 없습니다. 매우 부하 컴파일 (40 초) 에 문제가 내가 가진 :SQLALchemy 지연 컴파일 클래스

  • 더 1200 다음 클래스
  • 300 열거
  • 및 다형성 상속의
  • 7 단계 작업에 대한 일부 사용자 지정 기본 클래스
  • 일부 자체 관계는 하나의 클래스에서 일대 다 및 다 대다 본 자체 일 수 있습니다.
  • 부모와 자식은 한 테이블에 대한 somenamed 관계를 가질 수 있습니다.

나는 큰 프로젝트지만, 내가 ~ 100 클래스를로드해야 개발할 수 있습니다. 할 수있는 제품이 존재합니까? 아니면 사용자 정의 클래스 맵 및 사용자 정의 팩토리를 만들어야합니까?

답변

0

이 작업을 수행하려면 상속 및 기본 키가있는 클래스 만 만듭니다.

단계입니다 : 내가 하나 개의 인자 (클래스 이름)가 이미로드되지 않은 경우 확인 및 특성, foreign_keys와 관계를 가지고 기능, somethink 같은 class.attrib=Column(String)

2) 재정의 쓴 후

1) 쿼리에 대한 클래스, __getattr__를 만들고 어쩌면 __setattr__ 필요에 대한 정의 __new__, 나는

def __new__(cls,*args,**kwargs): 
    if cls.__name__ not in sl_loaded_classes: sl_load_function(cls.__name__) 
    return super(MyCLA,cls).__new__(cls) 

    def __getattr__(self,attr): 
    if "MyClass" not in sl_loaded_classes: sl_load_function("NameType") 
    if False: pass 
    elif attr=="relation" and "RelatedClass" not in sl_loaded_classes: 
     sl_load_function("RelatedClass") 
     for sl_class in gc.get_objects(): 
     if isinstance(sl_class,self.__class__): 
      config.session.refresh(sl_class) 
    else: return config.Base.__getattr__(self, attr) 
    return getattr(self,attr) 

을 모르는 그리고 지금은 (내가 OBJ를 삭제할 수 없습니다 pefect없는 일 ect,로드 관련 클래스 이전), 처리 중임