gpt4 book ai didi

python - 与 Django 的惰性 psql 连接

转载 作者:行者123 更新时间:2023-12-01 05:28:25 29 4
gpt4 key购买 nike

我有一个 Django 应用程序,它有多个数据库后端 - 所有后端都连接到 Postgresql 数据库的不同实例。其中之一不保证始终在线。它甚至可以在应用程序启动时离线。

我可以以某种方式配置 Django 使用惰性连接吗?我愿意:

  • 尝试查询
  • 如果数据库离线则返回“抱歉,请稍后重试”
  • 如果数据库在线则返回结果

这可能吗?

最佳答案

最初的困惑是 Django 在启动时尝试连接到其数据库。这实际上是不正确的。 Django 不会连接到数据库,直到某些应用程序尝试访问数据库。

由于我的 Web 应用程序使用 authsite 应用程序,因此看起来它会在启动时尝试连接。但它与启动无关,它与这些应用程序“早期”访问数据库的事实有关。

如果定义了第二个数据库后端(非默认),那么 Django 将不会尝试连接到它,除非应用程序尝试查询它。

所以解决方案非常简单 - 最初我有一个数据库,它既托管身份验证/站点数据,也托管我向用户公开的“真实”数据。我想让“真正的”数据库连接变得不稳定。因此,我为其定义了单独的 psql 后端,并将默认后端切换为 sqlite

现在,当尝试通过 Query 访问“真实”数据库时,我可以轻松地用 try/except 包装它,并向用户处理“抱歉,稍后再试”。

关于python - 与 Django 的惰性 psql 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20878709/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com