2013-07-09 40 views
1

我正在尋找可以執行以下操作的更新的Django 1.5命令。使用Django 1.5更新數據庫結構

python manage.py reset <app> 

我想基本上做的是DROP表和UPDATE內有manage.py command數據庫結構。

的事情是,復位命令不再工作,

manage.py flush 

manage.py sqlclear <app> 

只是刪除了數據庫/表的內容。

什麼是更新的Django 1.5的reset版本?

+0

我不認爲有一個替代品,但你可以看看['flush'(https://開頭的文檔.djangoproject.com/EN/1.3/REF/Django的管理員/#平齊) – karthikr

回答

0

我想你在找什麼是南方。 South是第三方工具,可能很快集成到Django中,幫助您進行數據庫遷移和模式更改。就像現在這樣,Django 1.5並沒有很好地處理模式變化,如果有的話。在Django 1.5中調整模式的唯一方法是添加新模型。您不希望參與添加新模型以實​​現所需表格更改或刪除的操作。大多數開發人員在需要進行架構調整時都會轉向第三方解決方案。

http://south.readthedocs.org/en/latest/about.html

參見教程http://south.readthedocs.org/en/latest/tutorial/part1.html#tutorial-part-1

南數據庫無關,並處理爲您自動數據庫遷移。所以如果你改變你的模式,它會在models.py中檢測到它並進行相應的更改。您可以包括南作爲一個應用Django項目,並通過PIP安裝

希望這有助於

0

作爲MySQL的替代方案,您可以使用以下代碼在manage.py旁邊創建application.py

這將DROPCREATE,並且UPDATE數據庫與models.py

#!/usr/bin/python 
import MySQLdb 
import subprocess 

dbname = "mydbname" 

db = MySQLdb.connect(host="127.0.0.1", user="username", passwd="superpassword", db=dbname) 

cur = db.cursor() 

#Drop all database to Drop all tables 
cur.execute("DROP DATABASE "+dbname) 

#Recreate the DB 
cur.execute("CREATE DATABASE "+dbname) 

#Sync with manage.py 
proc = subprocess.call(['python','manage.py','syncdb']) 

print "\n\nFinished!"