如何在项目中加载django app模型,而该项目不负责迁移

时间:2017-10-24 09:22:32

标签: django

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

  • 我想在几个django项目之间分享一个django应用程序。
  • 每个项目都有自己的postgresql架构。所有模式都存在于同一个postgresql数据库中。
  • 一个项目是应用数据的所有者,该项目负责运行迁移,数据应该存在于其模式中。
  • 所有其他项目可能会访问其他项目架构中的数据,因为它们具有正确的postgresql搜索路径集。

我们已经将这个概念与所有模型设置为不受管理的应用程序一起使用。但是数据库更改总是需要手动完成。我想从django迁移中受益,因此我希望我的模型可以管理或不管理。

您认为app config是改变模型元的好地方吗?关于如何解决这一要求的任何其他建议和方法也是受欢迎的。

1 个答案:

答案 0 :(得分:0)

在提到的评论setting MIGRATION_MODULES中效果非常好。在那些只应访问数据且不应负责迁移的项目中,您可以轻松禁用这样的迁移:

MIGRATION_MODULES = {
    'yoursharedapp': None
}

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