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

标签 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。

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

最佳答案

First of all, make a backup of the file db.sqlite3

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

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

python manage.py dbshell

列出所有表

sqlite> .table

删除表格

sqlite> DROP TABLE <table>;

关于django - 如何在 Django==2.1 中删除表(sqlite3)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256136/

相关文章:

python - 如何编写Django模型以从多个表中获取记录?

r - 将向量存储在关系数据库中

css - 如何让 liveserver 渲染 django 模板?

python - 如何锁定 Django 中的关键部分?

django - 如何让 Django View 返回表单错误

Django:相当于 "select [column name] from [tablename]"

python - Django/Python - 检查参数是否传递给类

django - 提高 Django PostgreSQL 查询的性能

android - 点击自动完成列表

database - 寻求 SQLite 的嵌入式数据库替代品。必须有外键约束和事务支持?