diff --git a/.github/workflows/createcachetable.yaml b/.github/workflows/createcachetable.yaml new file mode 100644 index 000000000..8fa4d76c8 --- /dev/null +++ b/.github/workflows/createcachetable.yaml @@ -0,0 +1,46 @@ +# This workflow can be run from the CLI for any environment +# gh workflow run createcachetable.yaml -f environment=ENVIRONMENT +# OR +# cf run-task getgov-ENVIRONMENT --command 'python manage.py createcachetable' --name createcachetable + +name: Create cache table +run-name: Create cache table for ${{ github.event.inputs.environment }} + +on: + workflow_dispatch: + inputs: + environment: + type: choice + description: Which environment should we create cache table for? + options: + - stable + - staging + - development + - backup + - ky + - es + - nl + - rh + - za + - gd + - rb + - ko + - ab + - rjm + - dk + +jobs: + createcachetable: + runs-on: ubuntu-latest + env: + CF_USERNAME: CF_${{ github.event.inputs.environment }}_USERNAME + CF_PASSWORD: CF_${{ github.event.inputs.environment }}_PASSWORD + steps: + - name: Create cache table for ${{ github.event.inputs.environment }} + uses: cloud-gov/cg-cli-tools@main + with: + cf_username: ${{ secrets[env.CF_USERNAME] }} + cf_password: ${{ secrets[env.CF_PASSWORD] }} + cf_org: cisa-dotgov + cf_space: ${{ github.event.inputs.environment }} + cf_command: "run-task getgov-${{ github.event.inputs.environment }} --command 'python manage.py createcachetable' --name createcachetable" diff --git a/ops/scripts/create_dev_sandbox.sh b/ops/scripts/create_dev_sandbox.sh index c9c55ae29..676fcf7ae 100755 --- a/ops/scripts/create_dev_sandbox.sh +++ b/ops/scripts/create_dev_sandbox.sh @@ -90,6 +90,9 @@ cd src/ cd .. cf push getgov-$1 -f ops/manifests/manifest-$1.yaml +echo "Creating cache table..." +cf run-task getgov-$1 --command 'python manage.py createcachetable' --name createcachetable + read -p "Please provide the email of the space developer: " -r cf set-space-role $REPLY cisa-dotgov $1 SpaceDeveloper diff --git a/src/docker-compose.yml b/src/docker-compose.yml index 600347fa8..c69c21192 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -68,6 +68,7 @@ services: command: > bash -c " python manage.py migrate && python manage.py load && + python manage.py createcachetable && python manage.py runserver 0.0.0.0:8080" db: diff --git a/src/registrar/config/settings.py b/src/registrar/config/settings.py index e5b97748a..032a6b278 100644 --- a/src/registrar/config/settings.py +++ b/src/registrar/config/settings.py @@ -192,15 +192,12 @@ WSGI_APPLICATION = "registrar.config.wsgi.application" # https://docs.djangoproject.com/en/4.0/howto/static-files/ -# Caching is disabled by default. -# For a low to medium traffic site, caching causes more -# problems than it solves. Should caching be desired, -# a reasonable start might be: -# CACHES = { -# "default": { -# "BACKEND": "django.core.cache.backends.db.DatabaseCache", -# } -# } +CACHES = { + "default": { + "BACKEND": "django.core.cache.backends.db.DatabaseCache", + "LOCATION": "cache_table", + } +} # Absolute path to the directory where `collectstatic` # will place static files for deployment. diff --git a/src/run.sh b/src/run.sh index 1d35cd617..0228f143f 100755 --- a/src/run.sh +++ b/src/run.sh @@ -6,4 +6,4 @@ set -o pipefail # Make sure that django's `collectstatic` has been run locally before pushing up to any environment, # so that the styles and static assets to show up correctly on any environment. -gunicorn --worker-class=gevent registrar.config.wsgi -t 60 +gunicorn --workers=3 --worker-class=gevent registrar.config.wsgi -t 60