Skip to main content

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

Project description

Django-probes Latest version on PyPI

GitHub Workflow Status GitHub Workflow 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: wait-for-database
          image: my-django-app:latest
          envFrom:
          - secretRef:
              name: django
          command: ['python', 'manage.py', 'wait_for_database']

Use with Your Own Command

Alternatively, you can integrate the wait_for_database command in your own management command, and do things like database migration, load initial data, etc. with roughly the same Kubernetes setup as above.

from django.core.management import call_command

# ...
call_command('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

–database:

which database of settings.DATABASES to wait for, default: default

Project details


Download files

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

Source Distribution

django_probes-1.7.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

django_probes-1.7.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file django_probes-1.7.0.tar.gz.

File metadata

  • Download URL: django_probes-1.7.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.13

File hashes

Hashes for django_probes-1.7.0.tar.gz
Algorithm Hash digest
SHA256 bb54c9db54f9c6aaadb032fcf77dfb6c6b17e597df1585d667cfe7491d2747d0
MD5 65fd8d54bebb420ee1087e7e4d83586d
BLAKE2b-256 3b100d633eb9949ea3d6d87ee3056af6e4be48a9cdf1303ea3d66b5afa69c85b

See more details on using hashes here.

File details

Details for the file django_probes-1.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_probes-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 60e656b83cbd0e290fca8263b256d7ebc42452f8c55a07044e56736f986c99a5
MD5 cce90913a3ab7be33824bfdd0be23b54
BLAKE2b-256 a6b9caaef098801959efc30002fbdb91fc65e9ab6fb59700cd04b77cf988f6fa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page