Как удалить модель, но сохранить таблицу базы данных на Django - PullRequest
0 голосов
/ 26 ноября 2018

Я хочу удалить объявление класса модели, но хочу сохранить записи и таблицу в базе данных.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Остановите Django, управляющий вашей моделью, установив атрибут Meta класса managed в False (по умолчанию True), как показано ниже:

class SomeModel(models.Model):
    ....

    class Meta:
        managed = False

Затем выполните python manage.py makemigrations,который должен создать миграцию, сообщающую вам что-то вроде

- Change Meta options on something

Запустите эту миграцию с помощью python manage.py migrate, что остановит Django от управления этой моделью, а затем удалит ее из базы кода.Миграция будет выглядеть так:

class Migration(migrations.Migration):

    dependencies = [
        ('blah', '0001_initial'),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='something',
            options={'managed': False},
        ),
    ]
0 голосов
/ 26 ноября 2018

Если класс не будет использоваться где-либо, но вы хотите сохранить данные:

  • Создайте дамп этих данных и создайте новую базу данных для хранения данных дампа.
  • Удалить модель.
  • Выполнить миграцию, удалив модель.

Если вы удалите модель в коде, я думаю, что вы всегда выполняете manage makemigrations, это создастмиграция для удаления таблицы.

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