【问题标题】:How do I configure multiple django applications to use the same database?如何配置多个 django 应用程序以使用同一个数据库?
【发布时间】:2019-06-29 18:22:40
【问题描述】:

当我将我的 Django 应用程序配置为使用容器时,当我尝试将我的进程分成更小的图像时,我遇到了一个问题。如何将逻辑分解成更小的组件,在它们自己的容器中运行,同时访问同一个数据库?

我意识到在“真正的”微服务环境中,我希望每个服务都有一个不同的数据库。但是,考虑这样一种情况,我有一些从数据库中读取数据并生成 CSV 文件的逻辑。

我想把它分解成一个单独的图像类型,它只包含那个逻辑,并获得一个特殊的磁盘挂载来写入文件。其余应用程序保持无状态。

所以我需要两个 django 应用程序,一个用于读取数据并将数据写入其数据库,另一个用于启动和运行针对同一数据库的报告。

选项 1: 是我继续使用同一个应用程序,其中模型已经定义。我启动一个容器进行处理,并启动另一个相同图像的容器用于报告。虽然这可行,但将行为隔离到特定应用程序似乎是一种更好的模式。

选项 2: ... 我的选项 2 是什么?

【问题讨论】:

    标签: python django docker microservices


    【解决方案1】:

    您在您的环境中使用 docker 网络吗?

    建议 1:(简单,但可以解决您的问题)在两个应用程序中复制 models.py。使用容器数据库名称连接数据库。 如果你需要在容器之间调用一个函数(def),你可以使用 API 的调用,使用DRF(Django Rest Framework)或者纯 Django 和 JsonResponse。 不要忘记创建令牌来访问这个“Api's Calls”

    最好的问候

    【讨论】:

    • 感谢您的回复。我曾简要考虑过这一点,但我担心在这两个位置维护文件。另外,我认为需要特别注意确保两个应用程序不会为相同的 models.py 生成迁移。
    猜你喜欢
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2016-10-03
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多