Administration Handbook

Instructions for sane DataWarehouse maintenance

Accessing Django shell

Using a Python shell is the easiest way to query or modify DataWarehouse data.

The following instructions asume a working oc local setup. Make sure your environment is correctly set up as explained in the local setup instructions.

If no modifications to production data are necessary, the safest way to interact with the database is to spin up the datawarehouse-webservice-readonly application.

By default, the datawarehouse-webservice-readonly deployment config is set to 0 replicas. In order to be available it’s necessary to scale it up first:

oc --context mpp_prod_external scale dc/datawarehouse-webservice-readonly --replicas=1

After a few seconds, the pod will have started and be ready to accept connections. Use the following command to access the Python shell:

oc --context mpp_prod_external rsh dc/datawarehouse-webservice-readonly python3 manage.py shell_plus

When the application is not necessary anymore, scale it down back to 0 replicas in order to save resources on the namespace:

oc --context mpp_prod_external scale dc/datawarehouse-webservice-readonly --replicas=0

Write-enabled instance

If required, it’s possible to open a shell on the production pods, where the database credentials allow writing to the database.

As this step is executed on already running pods, no scale up/down is necessary.

Warning: Executing commands on production pods affects production data, make sure you know what you are doing 🙈

oc --context mpp_prod_external rsh dc/datawarehouse-webservice python3 manage.py shell_plus