Django4.0 遷移-向應(yīng)用添加遷移

2022-03-16 17:50 更新

新的應(yīng)用已預(yù)先配置為接受遷移,因此你可以在進(jìn)行一些更改后通過(guò)運(yùn)行 ?makemigrations ?添加遷移。

如果你的應(yīng)用已經(jīng)具有模型和數(shù)據(jù)庫(kù)表,并且還沒(méi)有遷移(例如,你是在先前的 Django 版本中創(chuàng)建的),則需要通過(guò)運(yùn)行以下命令將其轉(zhuǎn)換為使用遷移:

$ python manage.py makemigrations your_app_label

這將為你的應(yīng)用程序進(jìn)行新的初始遷移?,F(xiàn)在,運(yùn)行 ?python manage.py migrate --fake-initial?,Django 將檢測(cè)到你有一個(gè)初始遷移 并且 它要?jiǎng)?chuàng)建的表已經(jīng)存在,而將遷移標(biāo)記為已應(yīng)用。(如果沒(méi)有 ?migrate --fake-initial? 標(biāo)志,該命令將出錯(cuò),因?yàn)樗獎(jiǎng)?chuàng)建的表已經(jīng)存在。)

請(qǐng)注意,這只適用于以下兩種情況:

  • 自從你建立了表之后,你就沒(méi)有改變過(guò)你的模型。要使遷移生效,你必須 首先 進(jìn)行初始遷移,然后再進(jìn)行更改,因?yàn)?Django 將變更與遷移文件(而不是數(shù)據(jù)庫(kù))進(jìn)行比較。
  • 你尚未手動(dòng)編輯數(shù)據(jù)庫(kù)——Django 無(wú)法檢測(cè)到你的數(shù)據(jù)庫(kù)與你的模型不匹配,當(dāng)遷移嘗試修改這些表時(shí),你只會(huì)得到錯(cuò)誤。


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)