2011-02-13 36 views
2

我想添加一列到現有的模型,並在運行「schemamigration --auto」後產生的遷移嘗試刪除另一個表!爲什麼會這樣做?爲什麼South決定刪除這個m2m表?

我的模型(簡體) -

class A(Model): 
    a = CharField() 
    b = BooleanField(default=False) # <--- this is the new column 

class B(Model):    # <---- this is the table South wants to delete 
    c = CharField() 
    d = ManyToManyField(A, through='C') 

結果[遷移

def forwards(self, orm): 
    # Removing M2M table for field d on 'B' 
    db.delete_table('B_d') # <------- Why is that? 
    # Adding field 'b' 
    db.add_column('A', 'b', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False) 

回答

1

你也可以通過模型在同一時間/添加自創建M2M B_D?很難確定沒有看到更多的代碼,但看起來像South正在拋棄自動連接表,因爲現在有一個指定的'through'模型用於連接。我也假設模型C確實存在:o)

+0

C確實存在:) 我沒有自己添加'through',但看起來像我的一位同事添加了它並自己刪除了m2m表沒有使用南),所以當(很晚)我添加了一列,並創建了一個自動遷移南嘗試刪除表。我想知道我添加的專欄是如何觸發的,Doh! – Iftah 2011-02-14 07:26:55

相關問題