W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
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 會提示你,并給你一些選項。如果它認為足夠安全,它將為你自動線性化兩個遷移。如果不安全,你就得自己去修改遷移。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: