2014-01-07 52 views
0

是否有一個簡單的乾淨的方式從Django模型中刪除字段?對於另外一個領域的,遷移的作品完美,但它不工作的缺失引發以下錯誤Django模型:刪除字段

django.db.utils.DatabaseError: (1060, "Duplicate column name 'xyz_json_old'")

回答

0

我使用南但我仍然不得不通過我的朋友的幫助下 -

他說我一定是拙劣的東西吃,在南方一些內部步驟不是原子

  1. 編輯models.py文件,並從類中刪除列
  2. bash提示符$蟒蛇manage.py schemamigration核心--auto
  3. MySQL提示>修改表core_tablename drop列xyz_json_old;承諾;
  4. bash提示符$蟒蛇manage.py核心
0

您可以使用South

  • 編輯您的settings.py並把'south'INSTALLED_APPS(假設你安裝它在正確的地方)
  • 運行./manage.py syncdb南方表加載到數據庫中。請注意,syncdb現在看起來不同 - 南修改它。
  • 運行./manage.py convert_to_south myapp -South會自動製作並假裝應用您的第一次遷移。

然後編輯您的models.py,然後

./manage.py schemamigration --auto myapp 

它們遷移:

./manage.py migrate myapp 
+0

我懷疑他已經在使用南方,我想他正試圖遷移而這也正是他的命中誤差。他可能需要 - 移動 – ptr

2

如果您想從模型拖放只有場試試這個

$ python manage.py dbshell 

你將直接進入數據庫shell(mys ql或psql),直到您正在使用的數據庫 。

$ mysql> | psql> ALTER TABLE <table_name> DROP column <COLUMN_NAME>; 

打開模型太(Python的文件),並從模型起飛的字段名稱現在鍵入

$ python manage.py syncdb 

它將列從表中刪除,那並不重要,如果該表已經填充或不填充。

+0

謝謝。剛寫完我的步驟後才注意到你的評論。 – comiventor