Skip to content

Skip the default heroku-postgresql addon if DATABASE_URL is set #1068

Open

Description

@edmorley

Currently the Python buildpack's bin/release step sets a default heroku-postgresql addon if the app has a manage.py script.

However for use-cases where the app wishes to use a different Heroku addon, or a non-Heroku DB, this default addon at best is unused and at worst causes confusion.

To resolve this the buildpack could skip the default addon if DATABASE_URL were already set at the time of the first build.

This would cause the default addon to be skipped if either:

  1. the app had another addon attached prior to the first build (that provided the DATABASE_URL env var)
  2. DATABASE_URL was manually set (eg via review app apps.json env list) then the default DB would be skipped

For more background see the discussion in:
#1056

Note: The buildpack API does not provide the env dir location during release. As such the env var would need to be checked during bin/compile and either stored until bin/release, or else the release step refactored such that the payload is generated during bin/compile and saved to disk, and then bin/release simply returns the already-generated payload. The latter is what the Ruby buildpack does.

Activity

  1. git2gus commented on Sep 18, 2020

    @git2gus

    This issue has been linked to a new work item: W-8098790

  2. runjoerun commented on May 9, 2024

    @runjoerun

    +1

  3. edmorley commented on May 9, 2024

    @edmorley
    MemberAuthor

    @runjoerun Hi! Could you explain a bit about your use-case?

  4. edmorley commented on Aug 4, 2025

    @edmorley
    MemberAuthor

    I'm leaning towards sunsetting the DB auto-provisioning behaviour entirely (tracked at GUS-W-19247777), given new Heroku accounts no longer get this functionality (xref https://devcenter.heroku.com/changelog-items/2596), plus it's also not supported by the CNB. So continuing to support it for the classic buildpack only leads to an inconsistent experience. (And now that there are no free Heroku Postgres plans, automatically provisioning a DB makes less sense.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions