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

Jul*_*ins 2 python database django django-models

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

n8s*_*sty 6

通过将Metaclass属性设置managedFalse(默认值为True)来停止Django管理模型,如下所示:

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

    class Meta:
        managed = False
Run Code Online (Sandbox Code Playgroud)

然后运行python manage.py makemigrations,这将创建一个迁移,告诉您类似

- Change Meta options on something
Run Code Online (Sandbox Code Playgroud)

通过运行迁移python manage.py migrate,这将阻止Django管理该模型,然后从您的代码库中将其删除。迁移看起来像:

class Migration(migrations.Migration):

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

    operations = [
        migrations.AlterModelOptions(
            name='something',
            options={'managed': False},
        ),
    ]
Run Code Online (Sandbox Code Playgroud)