如何在django中删除数据库表?

时间:2018-01-28 16:35:36

标签: django database sql-delete

我改变了模型并进行了迁移。然后我又改变了我的模型一次,当尝试python manage.py migrate我得到错误:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions, shop
Running migrations:
  Applying shop.0004_auto_20180128_1331...Traceback (most recent call last):
  File "/home/morilon/dj/intshop/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 83, in _execute
    return self.cursor.execute(sql)
  File "/home/morilon/dj/intshop/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 301, in execute
    return Database.Cursor.execute(self, query)
sqlite3.OperationalError: table "shop_brand" already exists

所以我的问题是 - 如何删除表" shop_brand" ??? 我已经尝试了flushsqlflush,但只删除了表中的数据,但实际上并没有删除表" shop_brand"。

我使用django 2.0.1和python 3.6

1 个答案:

答案 0 :(得分:2)

使用dbshel​​l命令

python manage.py dbshell

然后在shell中,根据您使用的数据库,键入命令以显示表以标识要删除的表。

例如,对于sqlite,您可以使用

.tables

仍然在shell中,您可以使用SQL命令删除表

DROP TABLE shop_brand;