【发布时间】:2016-05-10 13:00:16
【问题描述】:
Django 1.8 - 我写了一个新模型,我想为它创建一个迁移。我不希望应用程序中的其他模型由我的迁移创建,因为它们是代理。
我尝试确保所有其他模型都有类 Meta: managed = False,这并没有阻止它们出现在我的迁移文件中。
-
在我的数据库路由器中,我尝试使用allow_migrate,但同样,所有模型在我的迁移文件中都显示为“已创建”。
def allow_migrate(self, db, app_label, model_name=None, **hints): if db == 'a123admin_rw' and app_label == 'article' and model_name == 'articlestat': return True elif db == 'a123admin_rw': return False return None
我应该怎么做才能确保在我运行 makemigrations 时只有我的模型得到迁移?
【问题讨论】:
-
您是否有任何理由不希望
managed = False模型出现在您的迁移中?尽管迁移文件中存在非托管模型,但 Django 不会对非托管模型执行任何操作 - 即它们对您的数据库没有影响。 -
嗯...很高兴知道。理想情况下,我不希望出现关于这些模型的 SQL,让我放心,但如果它真的不会运行那个 SQL,那么......我想它必须这样做!谢谢!
标签: django python-2.7 django-migrations