代码之家  ›  专栏  ›  技术社区  ›  dahrens

如何在项目中加载django应用程序模型,而不让该项目负责迁移

  •  3
  • dahrens  · 技术社区  · 8 年前

    鉴于django项目应用程序和数据库模式的以下架构:

    • 有一个django应用程序,我想在几个django项目之间共享。
    • 一个项目是应用程序数据的所有者,该项目负责运行迁移,数据应该位于其模式中。
    • 所有其他项目都可以访问其他项目模式中的数据,因为它们具有适当的postgresql搜索路径集。

    我们已经在一个应用程序中使用了这个概念,该应用程序的所有模型都设置为非托管,可以正常工作。但数据库更改总是需要手动完成。我希望从django迁移中受益,因此我希望我的模型要么是托管的,要么是非托管的。

    你认为应用程序配置是改变模型的好地方吗?对于如何解决该需求,欢迎提出任何其他建议和方法。

    1 回复  |  直到 8 年前
        1
  •  0
  •   dahrens    8 年前

    上述评论中的 setting MIGRATION_MODULES 效果很好。在那些只应该访问数据而不应该对迁移负责的项目中,您可以轻松地禁用这样的迁移:

    MIGRATION_MODULES = {
        'yoursharedapp': None
    }
    

    注意,您需要使用适当的授权和搜索路径配置这些项目中使用的postgresql角色。