我有一个使用2个数据库的应用程序,1个默认是另一个是自定义的。所以我的2个模型使用默认数据库,否则使用自定义数据库。我不想在运行'make migrations'命令时迁移自定义数据库模型。请帮忙。
答案 0 :(得分:17)
您可以通过在Django Model Meta options中设置managed = False
来有选择地禁用一个或多个Django模型的迁移。
from django.db import models
class LegacyModel(models.Model):
class Meta:
managed = False
答案 1 :(得分:6)
值得一提的是,虽然managed
标志设置为False
,但仍会创建模型的迁移,但不会创建sql创建脚本。
可以使用manage.py sqlmigrate appname migration
答案 2 :(得分:3)
Options.managed默认为True,这意味着Django将创建 迁移中的适当数据库表或作为迁移和迁移的一部分 将它们作为刷新管理命令的一部分删除。就是Django 管理数据库表的生命周期。
如果为False,则不会创建或删除数据库表操作 为这个模型执行。如果模型代表一个,这很有用 现有表或由其他人创建的数据库视图 手段。当managed = False时,这是唯一的区别。所有其他 模型处理的各个方面与正常情况完全相同。 From the docs
class SomeModel(models.Model):
class Meta:
managed = False