Django4.0 遷移-依賴

2022-03-16 17:50 更新

雖然遷移是針對(duì)每個(gè)應(yīng)用程序的,但模型隱含的表和關(guān)系過(guò)于復(fù)雜,無(wú)法一次為一個(gè)應(yīng)用程序創(chuàng)建。當(dāng)您進(jìn)行需要運(yùn)行其他東西的遷移時(shí) - 例如,您在圖書(shū)應(yīng)用程序中將 ?ForeignKey ?添加到您的作者應(yīng)用程序 - 生成的遷移將包含對(duì)authors遷移中的依賴。

這意味著當(dāng)您運(yùn)行遷移時(shí),authors遷移首先運(yùn)行并創(chuàng)建 ?ForeignKey ?引用的表,然后生成 ?ForeignKey ?列的遷移隨后運(yùn)行并創(chuàng)建約束。如果這沒(méi)有發(fā)生,遷移將嘗試創(chuàng)建 ?ForeignKey ?列,而它所引用的表不存在,并且您的數(shù)據(jù)庫(kù)將引發(fā)錯(cuò)誤。

這種依賴行為會(huì)影響您限制為單個(gè)應(yīng)用程序的大多數(shù)遷移操作。限制為單個(gè)應(yīng)用程序(在 ?makemigrations ?或 ?migrate ?中)是盡力而為的承諾,而不是保證;任何其他需要用于正確獲取依賴關(guān)系的應(yīng)用程序都將是。

沒(méi)有遷移的應(yīng)用不得與有遷移的應(yīng)用有關(guān)系(?ForeignKey?、?ManyToManyField ?等)。有時(shí)它可能有效,但不受支持。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)