2014-01-07 50 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