我想删除模型的类声明,但是想保留数据库中的记录和表。我该怎么做?
我想删除模型的类声明,但是想保留数据库中的记录和表。我该怎么做?
通过将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},
),
]
managed = False
后,删除模型时运行./manage makemigrations
仍会自动创建一个migrations.DeleteModel
迁移...我错过了什么吗? - tomyo如果这个类不会在任何地方使用,但你想保留数据:
如果你在代码中删除了该模型,我认为每次执行 manage makemigrations
都会创建一个删除表的迁移。
make migrations
,它创建了一个用于删除表的迁移。 - grouchoboy