Django4.0 遷移-工作流程

2022-03-16 17:49 更新

Django 可以為你創(chuàng)建遷移。對你的模型進行修改——比如說,添加一個字段和刪除一個模型——然后運行 ?makemigrations?:

$ python manage.py makemigrations
Migrations for 'books':
  books/migrations/0003_auto.py:
    - Alter field author on book

你的模型將被掃描并與當前包含在你的遷移文件中的版本進行比較,然后將寫出一組新的遷移。請務(wù)必閱讀輸出,看看 ?makemigrations ?認為你已更改的內(nèi)容——它并不完美,對于復(fù)雜的更改,可能無法檢測到你所期望的。
一旦有了新的遷移文件,就應(yīng)該將它們應(yīng)用于數(shù)據(jù)庫,以確保它們可以按預(yù)期工作:

$ python manage.py migrate
Operations to perform:
  Apply all migrations: books
Running migrations:
  Rendering model states... DONE
  Applying books.0003_auto... OK

一旦應(yīng)用了遷移,將遷移和模型更改作為一個單一的提交來提交到您的版本控制系統(tǒng)——這樣,當其他開發(fā)人員(或你的生產(chǎn)服務(wù)器)檢查代碼時,他們將同時獲得對你的模型的更改和伴隨的遷移。
如果您你給遷移賦予一個有意義的名稱而不是生成的名稱,則可以使用 ?makemigrations --name選項:

$ python manage.py makemigrations --name changed_my_model your_app_label

版本控制

由于遷移存儲在版本控制中,因此你有時會遇到這樣的情況:你和另一個開發(fā)人員都同時向同一應(yīng)用提交了遷移,從而導(dǎo)致兩次遷移的編號相同。
別擔心——這些數(shù)字只是給開發(fā)者參考的,Django 只在乎每個遷移都有不同的名稱。 遷移在文件中指定了它們所依賴的其他哪些遷移——包括同一應(yīng)用中的早期遷移,所以可以檢測到同一應(yīng)用有兩個新的遷移沒有排序。
當這種情況發(fā)生時,Django 會提示你,并給你一些選項。如果它認為足夠安全,它將為你自動線性化兩個遷移。如果不安全,你就得自己去修改遷移。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號