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

标签 django

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

  • 我想在多个 Django 项目之间共享一个 Django 应用程序。
  • 每个项目都有自己的 postgresql 模式。所有模式都位于同一个 postgresql 数据库中。
  • 一个项目是应用数据的所有者,该项目负责运行迁移,并且数据应位于其架构中。
  • 所有其他项目都可以访问其他项目架构中的数据,因为它们设置了正确的 postgresql 搜索路径。

我们已经在一个应用程序中使用了这个概念,该应用程序将所有模型设置为非托管,并且有效。但数据库更改始终需要手动完成。我希望从 django 迁移中受益,因此我希望我的模型是托管的或非托管的。

您认为应用程序配置是更改模型元的好地方吗?也欢迎任何其他有关如何解决该需求的建议和方法。

最佳答案

评论中提到的setting MIGRATION_MODULES效果很好。在那些只应该访问数据并且不应该负责迁移的项目中,您可以轻松地禁用迁移,如下所示:

MIGRATION_MODULES = {
    'yoursharedapp': None
}

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

关于django - 如何在项目中加载 django 应用程序模型而不由该项目负责迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46906740/

相关文章:

django - API Django Rest Framework 上的多对多字段 POST 请求

django - Facebook 登录和电子邮件验证

python - 无法使用 python3 和 sqlite3 安装 pyspatialite

python - 当用户使用 django all-auth 注册时如何创建新的模型对象?

python - heroku 服务器上的 django makemigrations 和 migrate 不创建表

python - Django 1.11.4 Postgresql SELECT ARRAY 到 django orm

python - Django 从原始查询创建管理列表

python manage.py syncdb 无法正常工作

Django + 谷歌应用引擎 + 电子表格 api

python - 在 PythonAnywhere 上部署 Django 应用程序