sqlite視覺化檢視以及django-South

來源:互聯網
上載者:User

標籤: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運行遷移操作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.