2010-02-10 7 views
1

현재, 나는 3 개 모델, A, B 및 C장고 db_index 문제

C가 B는 그러나

class C(models.Model): 
    name = models.CharField(max_length=50, db_index=True, unique=True) 
    b = models.ForeignKey(B) 
class B: 
...similar to C 
class A 
...similar to C except for the FK 

에 외래 키 관리에 의해 생성 된 SQL을 가지고 B 외국 키가 있습니다. py sqlindexes app는 C.name, B.name 및 A.name에 대한 색인을 작성하지 않습니다. 왜 이런 일이 일어나는 지 아십니까?

답변

1

필드에도 unique = True이 있기 때문에 나에게 잘 보이기 때문에 걱정하지 않아도됩니다. unique = True을 얻은 경우에는 고유 인덱스 (데이터베이스 인덱스로 구현되거나 구현되지 않을 수도 있음)가 표시되므로 장고는 db_index = True 비트를 무시합니다.

비슷하게 지정된 내 모델 중 하나에 대해 매우 유사한 동작을 보입니다. manage.py sql app을 실행하면 어떤 결과가 나옵니까? name 필드가 UNIQUE으로 생성되는 것을 보시겠습니까?

+0

아니요 생성 된 sql이 고유 한 것으로 이름을 정의하지 않습니다. – jameszhao00

+0

흠, 방금 앱에서 sqlindexes를 다시 실행했고 name에 대한 색인을 생성했습니다. 도노, 작전 롤에서 일어난 일 – jameszhao00