新聞中心
Django 可以為你創(chuàng)建遷移。對(duì)你的模型進(jìn)行修改——比如說(shuō),添加一個(gè)字段和刪除一個(gè)模型——然后運(yùn)行 ?makemigrations?:

$ python manage.py makemigrations
Migrations for 'books':
books/migrations/0003_auto.py:
- Alter field author on book你的模型將被掃描并與當(dāng)前包含在你的遷移文件中的版本進(jìn)行比較,然后將寫出一組新的遷移。請(qǐng)務(wù)必閱讀輸出,看看 ?makemigrations ?認(rèn)為你已更改的內(nèi)容——它并不完美,對(duì)于復(fù)雜的更改,可能無(wú)法檢測(cè)到你所期望的。
一旦有了新的遷移文件,就應(yīng)該將它們應(yīng)用于數(shù)據(jù)庫(kù),以確保它們可以按預(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)用了遷移,將遷移和模型更改作為一個(gè)單一的提交來(lái)提交到您的版本控制系統(tǒng)——這樣,當(dāng)其他開(kāi)發(fā)人員(或你的生產(chǎn)服務(wù)器)檢查代碼時(shí),他們將同時(shí)獲得對(duì)你的模型的更改和伴隨的遷移。
如果您你給遷移賦予一個(gè)有意義的名稱而不是生成的名稱,則可以使用 ?makemigrations --name選項(xiàng):
$ python manage.py makemigrations --name changed_my_model your_app_label
版本控制
由于遷移存儲(chǔ)在版本控制中,因此你有時(shí)會(huì)遇到這樣的情況:你和另一個(gè)開(kāi)發(fā)人員都同時(shí)向同一應(yīng)用提交了遷移,從而導(dǎo)致兩次遷移的編號(hào)相同。
別擔(dān)心——這些數(shù)字只是給開(kāi)發(fā)者參考的,Django 只在乎每個(gè)遷移都有不同的名稱。 遷移在文件中指定了它們所依賴的其他哪些遷移——包括同一應(yīng)用中的早期遷移,所以可以檢測(cè)到同一應(yīng)用有兩個(gè)新的遷移沒(méi)有排序。
當(dāng)這種情況發(fā)生時(shí),Django 會(huì)提示你,并給你一些選項(xiàng)。如果它認(rèn)為足夠安全,它將為你自動(dòng)線性化兩個(gè)遷移。如果不安全,你就得自己去修改遷移。
本文名稱:創(chuàng)新互聯(lián)Django4.0教程:Django4.0遷移-工作流程
標(biāo)題路徑:http://www.dlmjj.cn/article/dhhcihj.html


咨詢
建站咨詢
