我正在尝试使用Heroku审查应用程序来测试并向我的同事演示我的站点。该网站有一个大型数据库,无法与Heroku的免费hobby-dev数据库一起工作。
我正在尝试使用app.json清单文件来指定我的应用程序的平台,就像导游一样。我使用的代码如下:
app.json
{
"name": "SiteName",
"description": "The website for SiteName",
"keywords": [
"mezzanine",
"django"
],
"image": "heroku/python",
"env": {
"EMAIL_SYSTEM": {
"description": "The email system to use, either console or mailgun",
"value": "mailgun"
},
"ENVIRONMENT": {
"description": "The dev environment, either production or test",
"value": "production"
},
"ALLOWED_HOSTS": {
"description": "Comma-separated list of hosts",
"value": ".herokuapp.com"
},
"DEFAULT_FROM_EMAIL": "noreply@example.com",
"SECRET_KEY": {
"description": "A secret key for verifying the integrity of signed cookies.",
"generator": "secret"
},
"WEB_CONCURRENCY": {
"description": "The number of processes to run.",
"value": "5"
},
"NODE_ENV": "production",
"DEBUG": "False",
"NPM_CONFIG_PRODUCTION": "false",
"CELERY_REDIS_MAX_CONNECTIONS": 3,
"S3_BUCKET": "my-s3-bucket",
"USE_CELERY_TASKS": "True"
},
"formation": {
"web": {
"quantity": 1,
"size": "Standard-1X"
},
"worker": {
"quantity": 1,
"size": "Standard-1X"
}
},
"addons": [
"heroku-redis",
{
"plan": "heroku-postgresql:standard-0",
"as": "DATABASE"
}
],
"buildpacks": [
{
"url": "https://github.com/heroku/heroku-buildpack-python.git"
}
],
"scripts": {
"postdeploy": "python manage.py migrate && python manage.py populate_db"
},
"environments": {
"test": {
"addons": [
"heroku-postgresql:in-dyno",
"heroku-redis:in-dyno"
],
"env": {
"APP_SKIP_DB_TEARDOWN": "True",
"DB_REQUIRE_SSL": "False",
"DEBUG": "True",
"S3_BUCKET": "my-s3-bucket",
"USE_CELERY_TASKS": "False"
},
"scripts": {
"test-setup": "python manage.py collectstatic --noinput",
"test": "python manage.py test"
}
}
}
}这将生成OK,但是如何显式地指定我希望使用的数据库计划?
发布于 2020-03-24 10:33:44
以防其他人碰到这个。
根据heroku的支持,他们已经改变了为评审和CI应用提供附加程序的方式,这意味着默认情况下,他们只会提供免费/最便宜的计划,而不管您的app.json 以下是他们推理的一些细节和解释是什么。
如果您打开一张票证,他们可以在帐户级别覆盖它(在撰写本报告时,它似乎没有内置到他们的管理区域中)。
发布于 2020-11-19 22:17:35
您只需使用sintax:heroku-postgresql:指定计划即可。
"addons": [
{
"plan": "heroku-postgresql:<plan_you_select>",
"as": "DATABASE"
}
]有关可用计划的列表,请查看以下链接:https://devcenter.heroku.com/articles/heroku-postgres-plans#hobby-tier
您还可以使用以下链接:https://elements.heroku.com/addons/heroku-postgresql在其上选择一个计划,您将在CLI上看到计划名称

发布于 2022-04-08 15:00:52
如果您不能/不能像皮特的回答建议的那样打开一张票,下面是我为升级Postgres而编写的bash代码。这很复杂,因为:
app.json和其他设置。heroku pg:upgrade只对非嗜好的dbs工作。# there's no easy way to grab the DATABASE_NAME so we have to grep the output here :-(
# see https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases
# and https://help.heroku.com/SY28FR6H/why-aren-t-i-seeing-the-add-on-plan-specified-in-my-app-json-in-my-review-or-ci-app
echo
echo "Upgrading Postgres."
heroku maintenance:on --app $app
addon_name=`heroku addons:create heroku-postgresql:standard-0 --app $app | grep "is being created" | awk '{print $1}'`
db_name=`heroku addons:info $addon_name --app $app | grep "Attachments" | awk -F :: '{print $2}'`_URL
echo $app $addon_name $db_name
heroku pg:wait --app $app
heroku pg:copy DATABASE_URL $db_name --app $app --confirm $app
heroku addons:destroy $addon_name --app $app --confirm $app
heroku pg:promote $db_name --app $app
heroku maintenance:off --app $apphttps://stackoverflow.com/questions/60724956
复制相似问题