首页 > 解决方案 > 如何删除模型但将数据库表保留在 Django

问题描述

我想删除模型的类声明,但想保留数据库中的记录和表。我怎样才能做到这一点?

标签: pythondjangodatabasedjango-models

解决方案


Meta通过将class 属性设置managedFalse(默认为)来停止 Django 管理您的模型,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},
        ),
    ]

推荐阅读