天天看點

Django-South 實作資料庫自動遷移

1. South 簡介

   South 是Django的第三方app,專門做資料庫表結構自動遷移工作。他已經成為Django資料庫表遷移标準,很多第三方app都會帶South migrations腳本。

2. syncdb簡介

   syncdb意思是資料庫同步。syncdb 指令是同步你的模型到資料庫的一個簡單方法。 它會根據 INSTALLED_APPS 裡設定的app來檢查資料庫, 如果表不存在,它就會建立它。 需要注意的是,syncdb 并不能将模型的修改或删除同步到資料庫;如果你修改或删除了一個模型,并想把它送出到資料庫,syncdb并不會做出任何處理。

   如果你再次運作 python manage.py syncdb ,什麼也沒發生,因為你沒有添加新的模型或者添加新的app。是以,運作python manage.py syncdb總是安全的,因為它不會重複執行SQL語句。

3. Souch 特性  

   (1)、自動遷移:south可自動檢測你的Models.py檔案的改變,自動寫入migrations去比對你所做的改變。

   (2)、資料庫獨立性:完全與資料庫無關的,支援五個不同的資料庫後端。這樣就無需再關注于資料庫方向,而專注與django。

   (3)、app藝術:south依賴app,south本身也是django的第三方app,再使用的時候單獨作用于每個app下,進行遷移,同步。

   (4)、VCS處理:south也能處理如果别人送出遷移到相同的應用程式作為你和他們沖突。

4. South使用

     1> 安裝South

          pip  install South        #如果pip未安裝,應先安裝pip

     2> South 配置

          South作為Django第三方的app,需要在django setting.py 配置檔案添加South應用。

   3> 建立一個module

       4> 初始化app    

           python manage.py schemamigration blog --initial   #第一次初始化;應用blog注冊到south中,隻執行一次

       5> 自動監測model類

          python manage.py    schemamigration blog --auto  #自動檢測model類的更改情況

       6>執行同步工作

            python manage.py   migrate blog                              #執行同步工作

本文出自 “” 部落格,請務必保留此出處