鉴于 django 项目应用程序和数据库架构的以下架构:
- 我想在多个 Django 项目之间共享一个 Django 应用程序。
- 每个项目都有自己的 postgresql 模式。所有模式都位于同一个 postgresql 数据库中。
- 一个项目是应用数据的所有者,该项目负责运行迁移,并且数据应位于其架构中。
- 所有其他项目都可以访问其他项目架构中的数据,因为它们设置了正确的 postgresql 搜索路径。
我们已经在一个应用程序中使用了这个概念,该应用程序将所有模型设置为非托管,并且有效。但数据库更改始终需要手动完成。我希望从 django 迁移中受益,因此我希望我的模型是托管的或非托管的。
您认为应用程序配置是更改模型元的好地方吗?也欢迎任何其他有关如何解决该需求的建议和方法。
最佳答案
评论中提到的setting MIGRATION_MODULES
效果很好。在那些只应该访问数据并且不应该负责迁移的项目中,您可以轻松地禁用迁移,如下所示:
MIGRATION_MODULES = {
'yoursharedapp': None
}
请注意,您需要使用适当的授权和搜索路径来配置这些项目中使用的 postgresql 角色。
关于django - 如何在项目中加载 django 应用程序模型而不由该项目负责迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46906740/