一尘不染

如何在DJango中从SQLite3删除表?

django

我做了一个模型,然后运行python manage.py syncdb。我认为在数据库中创建了一个表。然后我意识到我错误地创建了一个列,因此我更改了它,并运行了相同的命令,以为它将删除旧表并添加一个新表。

然后,我转到python manage.py shell,并尝试运行.objects.all(),但失败了,并说该列不存在。

我想清除旧表,然后再次运行syncdb,但是我不知道该怎么做。


阅读 1007

收藏
2020-04-01

共2个答案

一尘不染

使用Django 1.4或更低版本时,执行此操作的另一种简单方法是

python manage.py reset app_name

删除并重新创建此应用程序模型使用的表。

在Django 1.3中已弃用,并且在Django 1.5中不再可用

2020-04-01
一尘不染

清除应用程序就像编写代码一样简单:

./manage.py sqlclear app_name | ./manage.py dbshell 

然后,为了重建表,只需键入:

./manage.py syncdb
2020-04-01