Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

Make Django wait until database is ready. Probes for Docker and Kubernetes.

Project description

Django-probes Latest version on PyPI

Build status Python versions Software license

Provides a Django management command to check whether the primary database is ready to accept connections.

Run this command in a Kubernetes or OpenShift Init Container to make your Django application wait until the database is available (e.g. to run database migrations).

Why Should I Use This App?

wait_for_database is a single command for all database engines Django supports. It automatically checks the database you have configured in your Django project settings. No need to code a specific wait command for Postgres, MariaDB, Oracle, etc., no need to pull a database engine specific container just for running the database readiness check.

Installation

The easiest way to install django-probes is with pip

$ pip install django-probes

Basic Usage

  1. Add django-probes to your Django application:
INSTALLED_APPS = [
    ...
    'django_probes',
]

2. Add an Init Container to your Kubernetes/OpenShift deployment configuration, which calls the wait_for_database management command:

- kind: Deployment
  apiVersion: apps/v1
  spec:
    template:
      spec:
        initContainers:
        - name: check-db-ready
          image: my-django-app:latest
          envFrom:
          - secretRef:
              name: django
          command: ['python', 'manage.py', 'wait_for_database']

Command Line Options

The management command comes with sane defaults, which you can override if needed:

–timeout, -t:how long to wait for the database before timing out (seconds), default: 180
–stable, -s:how long to observe whether connection is stable (seconds), default: 5
–wait-when-down, -d:
 delay between checks when database is down (seconds), default: 2
–wait-when-alive, -a:
 delay between checks when database is up (seconds), default: 1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django_probes-1.2.0-py2-none-any.whl (5.5 kB) Copy SHA256 hash SHA256 Wheel py2
django_probes-1.2.0.tar.gz (4.8 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page