Как удалить таблицу (sqlite3) в Django == 2.1? - PullRequest
0 голосов
/ 18 января 2019

Я создал следующие модели в своем приложении 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 голосов
/ 18 января 2019

Прежде всего сделайте резервную копию файла db.sqlite3

Вы можете использовать dbshell, который запускает клиент командной строки для механизма базы данных

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

python manage.py dbshell

список всех таблиц

sqlite> .table

удалить таблицу

sqlite> DROP TABLE <table>;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...