【问题标题】:Use an external database in Django app on Heroku在 Heroku 上的 Django 应用程序中使用外部数据库
【发布时间】:2021-02-27 21:29:34
【问题描述】:

我正在尝试在 Heroku 上部署 Django REST API。通常我不会对此有任何问题,但对于这个应用程序,我使用的是 AWS 上存在的旧数据库。将 Django 部署到 Heroku 后,我是否可以继续使用这个远程数据库?我在 settings.py 中设置了所有数据库凭据,所以我认为它应该可以工作,但我不确定。

【问题讨论】:

    标签: python django heroku


    【解决方案1】:

    在 AWS 上连接数据库应该不会有任何问题。

    但要确保 AWS 上的数据库配置为接受外部访问,以便 Heroku 可以连接。

    我建议您从源代码中取出凭据并将其放入 Heroku 提供的 Config Vars(环境变量)中。

    【讨论】:

    • 感谢您的回复。这就是我的假设。我只是不确定 Heroku 是否还会尝试创建数据库并使用它。 Heroku 上的 Config Vars 是否与 .env 文件中的环境变量相同? (即我可以摆脱我的 .env 文件并将我的数据库和 Django 环境变量直接放入 Heroku 配置变量中吗?)
    • 是的。 Config Vars 是 Heroku 使用的环境变量。所以你不需要“.env”文件。
    • 如果后期需要提高数据库的安全性,可以试试AWS Elastic Beanstalk,和Heroku类似,但是可以保持在同一个服务器下,保护数据库服务器从外部访问。
    • 我也想过这个问题。现有数据库是现有弹性 beanstalk 应用程序/环境的一部分。是否可以将此 Django 应用程序部署到弹性 beanstalk 但在另一个弹性 beanstalk 应用程序中使用现有数据库?
    • 在另一个 beanstalk 应用程序中重用数据库应该没有问题。 Beanstalk App 可以毫无问题地连接任何数据库(与 Heroku 相同)。
    【解决方案2】:

    它会起作用吗?我认为是的,只要您配置项目和数据库以供外部访问。

    你想要吗?平均页面如何执行查询?一些应用程序可能会针对每个端点进行数十次查询,并且增加的等待可能会合并为等待每个请求的秒数。

    【讨论】:

    • 我可能不会对每个端点进行超过 3 或 4 个查询。这是我担心的事情之一。我想我将不得不拭目以待。
    • 也可能存在一些安全问题。我不想将我的数据库端口转发到互联网。
    猜你喜欢
    • 2015-10-02
    • 2019-02-05
    • 2011-12-05
    • 2015-06-30
    • 2021-12-02
    • 2013-02-14
    • 2019-02-24
    相关资源
    最近更新 更多