django 遷移工具makemigrations

Django 1.7 新數據遷移工具 (migrations) 的使用和如何從 South 升級轉換python

做者: Desmond Chen, 發佈日期: 2014-09-19, 修改日期: 2014-09-19
在1.6以前, Django只支持添加新的model到數據庫, 而沒法編輯或修改已經存在的model. 在當時, 這些Django缺失的功能能夠經過South實現.sql

  1. 新的命令

Django 1.7 爲咱們帶來了三個新命令:數據庫

migrate: 用於執行遷移動做
makemigrations: 基於當前的model建立新的遷移策略文件
sqlmigrate: 顯示遷移的SQL語句
值得注意的是, migration是基於App的, 所以, 咱們能夠針對某些app不啓用migration功能.django

  1. 如何使用

migrations的使用很是簡單: 修改model, 好比增長field, 而後運行app

python manager.py makemigrations

你的mmodel會被掃描, 而後與以前的版本做比較, 在app的migrations目錄下生成本次遷移文件.工具

咱們建議查看一下該遷移文件, 確保沒有問題. 而後運行:code

python manager.py migrate

migrate命令會進行比較, 並應用該遷移.blog

  1. 從South到新的Django migrations

若是想從south升級到最新的django migration, 能夠按如下步驟實現:get

確保south中的migration所有被應用了
從 INSTALLED_APPS中移除south
刪除每一個app下migration目錄中的全部文件, 除了init.py
運行python manager.py makemigrations, Django會初始化migration
運行python manager.py migrate, django會發現數據庫和初始化的migration相同, 從而將他們標記爲已應用it

原文連接: http://www.weiguda.com/blog/72/

相關文章
相關標籤/搜索