標籤:style blog http color 使用 io strong 檔案
在linux系統下想要可視化sqlite的辦法
一:安裝sqlitebrowser:
sudo apt-get install sqlitebrowser
二:在終端提示符後輸入sqlitebrowser啟動圖形介面:
django的syncdb命令缺陷在於並不能將模型的修改或刪除同步到資料庫,因此造成了比較大的不方便,下面我們來介紹一個高大上的工具South:
第一步安裝South。
第二步將south放在installed中:
第三步syncdb,建立south表,成功後會多出一個表並給出如下提示
此時我們建立一個app ‘southtut’,在models.py中寫入:
敲入命令:./manage.py schemamigration southtut --initial
選中shift+enter:輸入southtut --initial,終端顯示
此時在app下多了一個檔案夾用來存檔:
此時sqlite資料庫裡面尚無Knight表,這時需要合并
輸入app名稱例如southtut,這是合并結束,資料庫裡出現這個表格
如果Knight有改動的話,例如
這時輸入命令:./manage.py schemamigration southtut --auto
從輸出的提示可以看到, south已經為你增加了新的遷移記錄檔案 (0002_auto__add_field_knight_dances_whenever_able.py), south的命名方式是序號+所做的更改. 接下來, 我們根據提示, 使用migrate命令修改資料庫:
此時就將改動儲存至資料庫了。
我們再改動一下,增加一列:
此時再執行schemamigration, 會出現一些沒有見過的選擇:
其中選項1意思是, 放棄本次自動遷移, 並退出, 你可以在field中添加default值後再執行schemamigration. 選項2的意思是, 為已經存在的行添加一個一次性的值. 當你選擇2時, 會出現python提示行, 你可以使用python的datetime模組:
此時你可以查看自動產生的遷移記錄檔案, south會為建立的欄添加預設值0, 這樣資料庫才不會報錯. 然後我們再執行migrate即可。
如果在項目起始的時候沒有使用south,那我們可以按以下方式啟用:
一:加入south,syncdb建立south_igratitonhistory表。
二:python manage.py convert_to_south youappname在youappname目錄下面建立migrations目錄
以後即可正常使用。
另外south還提供回溯功能:在migrate中指定app及回溯py檔案即可:manage.py migrate southtut 0001_initial.py:
如果South在同步資料庫的過程中出現錯誤,則migrations目錄下面對應此次更改的python檔案不會被執行,可以運行python manage.py migrate --list查看沒有執行的py檔案,檔案名稱前面沒有*表示該檔案對應的更改沒有反應到資料庫,只需刪除掉這些有問題的migrate,參照錯誤提示修改 models再同步即可,也可以直接更改對應的py檔案修複錯誤
深入化資料移轉:
資料移轉是用來改變你的資料庫中儲存的資料匹配一個新的模式,或特性。
http://www.cnblogs.com/BeginMan/p/3325897.html
demo:
http://blog.csdn.net/watsy/article/details/11965019
1)建立一個沒有資料庫的新項目時
1、建立資料庫
2、將south添加到INSTALLED_APPS
3、運行syncdb命令,它將django和south的資料表加入到資料庫中
4、將你建立的apps添加到INSTALLED_APPS
5、對每個app分別運行“python manage.py schemamigration app_name --initial”,它將在每個app的目錄下建立migration目錄和相應的檔案
6、然後運行“python manage.py migrate app_name”,這一步將app的資料表加入到資料庫中
2)在帶有資料庫的已存項目中使用south
1、將south加入到INSTALLED_APPS中
2、運行syncdb,它將south的資料表加入到資料庫中
3、對每個app分別運行python manage.py schemamigration app_name --initial,它將在每個app的目錄下建立migration目錄和相應的檔案
4、對每個app分別運行“python manage.py migrate app_name 0001 --fake”,該命令不會對資料庫做任何操作,只是欺騙一下south,讓它在south_migrationhistory表中添加一些記錄以便於下次你想創造migration檔案的時候所有東西都已搞定。
3、在沒有資料庫的已存項目中使用south
1)建立資料庫
2)將south加入到INSTALLED_APPS中
3)對每個app分別運行“python manage.py schemamigration app_name --initial”,它將在每個app的目錄下建立migration目錄和相應的檔案
4)運行syncdb,它將所有沒有migrations的apps加入到資料庫中
5)然後運行“python manage.py migrate”命令,它將對你的所有apps運行遷移操作。