从Django模型中删除字段是否有直接干净的方法?为了添加一个字段,迁移工作完美,但它不适用于删除抛出以下错误
django.db.utils.DatabaseError:(1060,“重复列名'xyz_json_old'”)
答案 0 :(得分:3)
如果您只想从模型中删除字段,请尝试使用
$ python manage.py dbshell
你将直接在你的数据库shell(mysql或psql)中获取它到什么数据库 你正在使用。
$ mysql> | psql> ALTER TABLE <table_name> DROP column <COLUMN_NAME>;
打开模型(python文件)并从模型中取出字段名称并立即键入
$ python manage.py syncdb
它会将列从表中删除,如果表已经填充,则无关紧要。
答案 1 :(得分:0)
您可以使用South。
settings.py
并将'south'
放入INSTALLED_APPS
(假设您已将其安装到正确的位置)./manage.py syncdb
将南表加载到数据库中。请注意,syncdb现在看起来有所不同 - 南方修改它。./manage.py convert_to_south myapp
- 南方将自动制作并假装应用您的首次迁移。然后修改您的models.py
,然后
./manage.py schemamigration --auto myapp
他们迁移:
./manage.py migrate myapp
答案 2 :(得分:0)
我正在使用南方,但我仍然需要在朋友的帮助下完成以下操作 -
他说我必须搞砸了一些东西,南方的一些内部步骤不是原子的