如何删除模型,但将数据库表保留在Django上

时间:2018-11-26 19:30:43

标签: python django database django-models

我想删除模型的类声明,但希望将记录和表保留在数据库中。我该怎么办?

2 个答案:

答案 0 :(得分:4)

通过将Meta类属性managed设置为False(默认为True)来停止Django管理模型,如下所示:

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},
        ),
    ]

答案 1 :(得分:-1)

如果该类不会在任何地方使用,但您想保留数据:

  • 转储该数据并创建一个新数据库以存储转储数据。
  • 删除模型。
  • 进行迁移以删除模型。

如果您在代码中删除模型,我认为总是执行manage makemigrations它将创建迁移以删除表。