【问题标题】:How can I ensure only 1 model in my django app creates a migration?如何确保我的 django 应用程序中只有 1 个模型创建迁移?
【发布时间】:2016-05-10 13:00:16
【问题描述】:

Django 1.8 - 我写了一个新模型,我想为它创建一个迁移。我不希望应用程序中的其他模型由我的迁移创建,因为它们是代理。

  1. 我尝试确保所有其他模型都有类 Meta: managed = False,这并没有阻止它们出现在我的迁移文件中。

  2. 在我的数据库路由器中,我尝试使用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


【解决方案1】:

感谢这里发布的评论,我完成了它。这是我的最终报告:http://learnedandhacked.blogspot.ca/2016/02/a-story-of-migrating-new-model-in-app.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 2017-09-15
    • 2016-04-14
    • 2015-02-03
    • 2011-03-11
    • 2023-03-25
    • 2019-06-19
    • 1970-01-01
    相关资源
    最近更新 更多