반응형

장고 (Django) 모델 스키마 연동 제외 방법

장고는 모델에 클래스만 잘 작성해 주면 구조에 맞게 스키마를 자동 생성해주는데요.
이때 모델을 작성하다 보면 자동생성되는 스키마 때문에 곤란할 때가 있습니다.
예를 들어 미리 생성해 놓은 뷰나 테이블을 가져와 처리해야 될 때는
스키마를 변경하거나 생성시킬 필요가 전혀 없습니다.
이럴 경우 아래와 같은 명령어로 모델에서 관리되는 스키마에서 제외시킬 수 있습니다.

class Meta:
    managed = False
    db_table = "vw_product_keyword"


해당 클래스는 managed = False 즉, 해당 모델에서 관리하지 않겠다는 것이고
DB의 vw_product_keywrod 라는 뷰를 참조하겠다는 것입니다.

위 구문을 추가한 후 migration을 다시 돌려도 vw_product_keyword라는 테이블이 새로 생성되거나
클래스 내용이 변경되어도 DB 스키마가 변경되지 않는 것을 확인하실 수 있습니다.


반응형

+ Recent posts