gpt4 book ai didi

django - 如何为 Heroku 评论应用程序使用不同的数据库?

转载 作者:行者123 更新时间:2023-12-03 21:32:56 25 4
gpt4 key购买 nike

我在 Heroku 上有一个部署管道,它最近开始使用审查应用程序。这意味着我有一个应用程序——我们称之为 CI-APP——它是从主分支创建的。

每次发出拉取请求时,都会创建一个审查应用程序。我们在我们的项目中使用了 Django,所以我还添加了 migrate命令到 release项目中的阶段,以便可以自动完成数据库迁移。

今天,一位同事提交了一个包含一些数据库更改的拉取请求。问题是迁移已运行,并且由于审查应用程序似乎使用与它们假设合并到的应用程序相同的数据库,因此应用了迁移,现在我的应用程序 CI-APP 停止工作......因为代码库不再匹配数据库结构。

与父应用程序相比,我搜索了很多关于如何为评论应用程序使用完全不同的数据库,但无济于事(有一些资源提到了如何复制数据库内容,但这不是我需要的)。

有什么建议吗?

更新

好吧,看来 Heroku 确实为评论应用程序创建了一个新数据库,但是:评论应用程序从父级复制其所有环境变量,包括 DATABASE_URL(这似乎是实际创建评论应用程序的唯一方法: https://s3.amazonaws.com/heroku-devcenter-files/article-images/1461071037-initial_set_up_review_apps.png )

我想我可以在 postdeploy 脚本中做一些黑魔法,但是由于数据库生成的 url 可以是诸如 HEROKU_POSTGRESQL_{color}_URL 之类的东西,我不知道如何找到它......

最佳答案

为此,请在项目的根目录下创建 app.json 文件,而不是使用 heroku 仪表板。在此文件中,您可以指定从父级继承哪些环境变量。

从 heroku 文档:
"env": {
"INHERIT_THIS_CONFIG_VAR": {
"required": true
},
"DONT_INHERIT_THIS_CONFIG_VAR": "production"
},

这允许您指定要用于评论应用程序的数据库。查看 heroku postgres 插件的文档(我假设您使用的是 postgres):

As part of the provisioning process, a DATABASE_URL config var is added to your app’s configuration. This contains the URL your app uses to access the database.



所以 database_url 配置变量将由插件创建。你只需要不要把它放在 app.json 文件中,它会自动创建。

关于django - 如何为 Heroku 评论应用程序使用不同的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40524799/

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