如何确保我的 django 应用程序中只有 1 个模型创建迁移?
Posted
技术标签:
【中文标题】如何确保我的 django 应用程序中只有 1 个模型创建迁移?【英文标题】:How can I ensure only 1 model in my django app creates a migration? 【发布时间】: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,那么......我想它必须这样做!谢谢!
【参考方案1】:
感谢这里发布的评论,我完成了它。这是我的最终报告:http://learnedandhacked.blogspot.ca/2016/02/a-story-of-migrating-new-model-in-app.html
【讨论】:
以上是关于如何确保我的 django 应用程序中只有 1 个模型创建迁移?的主要内容,如果未能解决你的问题,请参考以下文章
Redux saga:我如何确保只有我的 saga 能够更新某个状态?