1

我正在尝试使用 Heroku 评论应用程序来测试我的网站并向我的同事展示我的网站。该站点有一个大型数据库,无法与 Heroku 的免费hobby-dev数据库一起使用。

根据指南,我正在尝试使用app.json清单文件来指定我的应用程序的平台。我正在使用的代码如下:

应用程序.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"
        }
      }
    }
  }

这将构建好,但我如何明确指定我希望使用的数据库计划?

4

2 回答 2

6

以防其他人遇到这种情况。

根据 heroku 支持,他们已经改变了他们为审查和 CI 应用程序提供插件的方式,这意味着默认情况下,他们只会提供免费/最便宜的计划,而不管你的 app.json中有什么。这里有一些细节和对他们推理的解释

如果您打开工单,他们可以在帐户级别覆盖它(在撰写本文时,这似乎没有内置到他们的管理区域中)

于 2020-03-24T10:33:44.057 回答
1

您只需要使用 sintax 指定计划: heroku-postgresql:<plan_you_select>

"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 上看到计划名称 在此处输入图像描述

于 2020-11-19T22:17:35.283 回答