Skip to content

Commit

Permalink
fix: retire DATABASE_URL connection variable
Browse files Browse the repository at this point in the history
  • Loading branch information
ngurenyaga committed Jul 12, 2021
1 parent c40332c commit 8bc28c9
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 28 deletions.
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ env:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres
GOOGLE_APPLICATION_CREDENTIALS: "${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}"
DJANGO_GCP_STORAGE_BUCKET_NAME: ${{ secrets.DJANGO_GCP_STORAGE_BUCKET_NAME }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
19 changes: 11 additions & 8 deletions config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@
APPS_DIR = ROOT_DIR / "pepfar_mle"
env = environ.Env()

# >>> from urllib.parse import quote_plus
# >>> host = '/cloudsql/sghi-307909:europe-west1:clinical-instance'
# >>> quote_plus(host)
# '%2Fcloudsql%2Fsghi-307909%3Aeurope-west1%3Aclinical-instance'
# >>>
if os.environ.get("GOOGLE_CLOUD_PROJECT", None):
project_id = os.environ.get("GOOGLE_CLOUD_PROJECT")
client = secretmanager.SecretManagerServiceClient()
Expand All @@ -26,7 +21,6 @@
payload = client.access_secret_version(name=name).payload.data.decode("UTF-8")
env.read_env(io.StringIO(payload))
print("set env from secrets...")
print(f'database settings: {env.db("DATABASE_URL")}')

# GENERAL
# ------------------------------------------------------------------------------
Expand All @@ -53,8 +47,17 @@
# DATABASES
# ------------------------------------------------------------------------------
# https://docs.djangoproject.com/en/dev/ref/settings/#databases
DATABASES = {"default": env.db("DATABASE_URL")}
DATABASES["default"]["ATOMIC_REQUESTS"] = True
DATABASES = {
"default": {
"NAME": env.str("POSTGRES_DB"),
"USER": env.str("POSTGRES_USER"),
"PASSWORD": env.str("POSTGRES_PASSWORD"),
"HOST": env.str("POSTGRES_HOST"),
"PORT": env.str("POSTGRES_PORT"),
"ENGINE": "django.db.backends.postgresql",
"ATOMIC_REQUESTS": True,
}
}

# URLS
# ------------------------------------------------------------------------------
Expand Down
1 change: 0 additions & 1 deletion config/settings/production.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

# DATABASES
# ------------------------------------------------------------------------------
DATABASES["default"] = env.db("DATABASE_URL") # noqa F405
DATABASES["default"]["ATOMIC_REQUESTS"] = True # noqa F405
DATABASES["default"]["CONN_MAX_AGE"] = env.int("CONN_MAX_AGE", default=60) # noqa F405

Expand Down
6 changes: 5 additions & 1 deletion config/settings/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,8 @@ def require_env(name: str) -> str:
# ensure that environment variables that are needed to run tests successfully are present
require_env("GOOGLE_APPLICATION_CREDENTIALS")
require_env("DJANGO_GCP_STORAGE_BUCKET_NAME")
require_env("DATABASE_URL")
require_env("POSTGRES_DB")
require_env("POSTGRES_USER")
require_env("POSTGRES_PASSWORD")
require_env("POSTGRES_HOST")
require_env("POSTGRES_PORT")
17 changes: 0 additions & 17 deletions entrypoint
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,6 @@ set -o errexit
set -o pipefail
set -o nounset

if [ -z "${POSTGRES_USER}" ]; then
base_postgres_image_default_user='postgres'
export POSTGRES_USER="${base_postgres_image_default_user}"
fi
echo "Set/checked POSTGRES_USER..."

# omit the port when running on App Engine, Cloud Run etc
if [ -z "${INSTANCE_CONNECTION_NAME}" ]; then
export DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}"
echo "Set up database URL for running in Cloud SQL (Unix Socket)"
else
export DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}/${POSTGRES_DB}"
echo "Set up database URL for running outside Cloud SQL (host and port)"
fi

echo "Database URL: ${DATABASE_URL}"

postgres_ready() {
python << END
import sys
Expand Down

0 comments on commit 8bc28c9

Please sign in to comment.