我一直是Django的用戶,現在已經有2年多了,並且有一個我一直非常喜歡使用的功能:僞造遷移。Django migrate --fake and --fake-initial explained
我看了幾乎無處不在,我可以得到最多的信息是從documentation它指出:
--fake
告訴Django,以紀念遷移具有已應用或 未應用,但未實際運行SQL以更改您的 數據庫架構。
這適用於高級用戶直接操作當前的 遷移狀態,如果他們手動應用更改;是 警告說,使用--fake運行將遷移狀態 錶轉換爲需要手動恢復才能使 遷移正確運行的狀態的風險。
--fake-初始
允許,如果已存在的所有數據庫 表與所有CreateModel 操作在移民創建的所有模型的名稱Django的跳過應用程序的初始遷移。當首次運行鍼對數據庫的遷移時,此選項的用途爲 , 預先使用遷移。但是,此選項不檢查 是否將數據庫架構與匹配的表名進行匹配,因此如果您確信現有的架構 與您在初始遷移中記錄的內容相匹配,那麼只有安全使用 。
我明白了爲什麼要使用此功能。但是,我不明白它說這是只適用於高級用戶的部分。
有人可以解釋幕後發生的事情以及爲什麼需要手動恢復。
注意
我不是尋找一個僞造遷移時運行的確切原始的SQL查詢。我只是在尋找關於現場背後發生的一般想法,並且可能舉例說明爲什麼僞造遷移 會導致makemigrations
無法正常工作的狀態。
感謝您的回答!它幫助我看到了僞造移民的真實情況,但我仍然想知道在僞造移民的過程中發生了什麼。 – scharette
@scharette是的,有用的問題。解釋。 – hynekcer