Django4.0 遷移-命令

2022-03-16 17:49 更新

遷移是 Django 將你對模型的修改(例如增加一個字段,刪除一個模型)應用至數(shù)據(jù)庫架構(gòu)中的方式。它們被設計的盡可能自動化,但你仍需要知道何時構(gòu)建和運行遷移,你還需要了解一些常見問題。

以下是幾個常用的與遷移交互的命令,即 Django 處理數(shù)據(jù)庫架構(gòu)的方式:

  • ?migrate?,負責應用和撤銷遷移。
  • ?makemigrations?,基于模型的修改創(chuàng)建遷移。
  • ?sqlmigrate?,展示遷移使用的 SQL 語句。
  • ?showmigrations?,列出項目的遷移和遷移的狀態(tài)。

你應該將遷移看作是數(shù)據(jù)庫架構(gòu)的版本控制系統(tǒng)。 ?makemigrations ?負責將模型修改打包進獨立的遷移文件中——類似提交修改,而 ?migrate ?負責將其應用至數(shù)據(jù)庫。
每個應用的遷移文件位于該應用的?migrations?目錄中,他們被設計成應用代碼的一部分,與應用代碼一起被提交,被發(fā)布。你只需在開發(fā)機上構(gòu)建一次,就可以在同事的電腦或測試機上運行同樣的遷移而保證結(jié)果一致。最后在生產(chǎn)環(huán)境運行同樣的遷移。

通過修改配置 ?MIGRATION_MODULES ?可以重寫包含遷移的應用的包名。

從同樣的數(shù)據(jù)集合運行遷移在開發(fā)、測試和生產(chǎn)環(huán)境都會生成同樣的結(jié)果。

Django 會在修改模型或字段時生成遷移——即便修改的是不會影響數(shù)據(jù)庫的配置——因為唯一能確保結(jié)果正確性的方法時完整記錄修改歷史,而且這些東西你以后可能在某些數(shù)據(jù)遷移中用的到(例如,已設置了自定義驗證器的時候)。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號