如何在Django == 2.1中删除表(sqlite3)?

时间:2019-01-18 14:38:15

标签: django django-models sqlite

我在我的应用events中创建了以下模型:

from django.db import models
from django.utils import timezone
from django.urls import reverse


class EventType(models.Model):
    type_of_event = models.CharField(max_length=100, unique=True)

    def __str__(self):
        return self.type_of_event


class Event(models.Model):
    type_of_event = models.ForeignKey(EventType, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
    description = models.TextField()
    event_date = models.DateTimeField(default=timezone.now())
    venue = models.CharField(max_length=200)
    entry_fee = models.FloatField()

    def __str__(self):
        return self.name

由于一些错误和更改,我多次创建和删除了迁移文件。现在,makemigrations命令可以使用,但是当我尝试使用python manage.py migrate迁移模型时,它显示以下错误:

  File "/home/anirudh/.local/share/virtualenvs/Amrita-event-manager-DHqKHtGE/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 294, in execute
    return Database.Cursor.execute(self, query)
django.db.utils.OperationalError: table "events_event" already exists

我正在将Django 2.1和sqlite3一起使用。

与此类似的大多数问题都太旧了,与我现在使用的版本不兼容。

1 个答案:

答案 0 :(得分:4)

  

首先,备份文件db.sqlite3

您可以使用dbshel​​l,它为数据库引擎运行命令行客户端

https://docs.djangoproject.com/en/dev/ref/django-admin/#django-admin-dbshell

WHERE col = ANY ($1::text[])

列出所有表

values

删除表格

PQexecPrepared()