{ "info": { "author": "VSHN AG", "author_email": "tech@vshn.ch", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Django-probes |latest-version|\n==============================\n\n|build-status| |python-support| |license|\n\nProvides a Django management command to check whether the primary database\nis ready to accept connections.\n\nRun this command in a Kubernetes or OpenShift `Init Container`_ to make\nyour Django application wait until the database is available (e.g. to run\ndatabase migrations).\n\nWhy Should I Use This App?\n--------------------------\n\n``wait_for_database`` is a *single* command for *all* database engines\nDjango supports. It automatically checks the database you have configured\nin your Django project settings. No need to code a specific wait command\nfor Postgres, MariaDB, Oracle, etc., no need to pull a database engine\nspecific container just for running the database readiness check.\n\n.. |latest-version| image:: https://img.shields.io/pypi/v/django-probes.svg\n :alt: Latest version on PyPI\n :target: https://pypi.org/project/django-probes\n.. |build-status| image:: https://img.shields.io/travis/vshn/django-probes/master.svg\n :alt: Build status\n :target: https://travis-ci.org/vshn/django-probes\n.. |python-support| image:: https://img.shields.io/pypi/pyversions/django-probes.svg\n :alt: Python versions\n :target: https://pypi.org/project/django-probes\n.. |license| image:: https://img.shields.io/pypi/l/django-probes.svg\n :alt: Software license\n :target: https://github.com/vshn/django-probes/blob/master/LICENSE\n\n.. _Init Container: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\n\nInstallation\n============\n\nThe easiest way to install django-probes is with pip\n\n.. code:: console\n\n $ pip install django-probes\n\nBasic Usage\n===========\n\n1. Add django-probes to your Django application:\n\n.. code:: python\n\n INSTALLED_APPS = [\n ...\n 'django_probes',\n ]\n\n2. Add an `Init Container`_ to your Kubernetes/OpenShift deployment\nconfiguration, which calls the ``wait_for_database`` management command:\n\n.. code:: yaml\n\n - kind: Deployment\n apiVersion: apps/v1\n spec:\n template:\n spec:\n initContainers:\n - name: check-db-ready\n image: my-django-app:latest\n envFrom:\n - secretRef:\n name: django\n command: ['python', 'manage.py', 'wait_for_database']\n\nCommand Line Options\n--------------------\n\nThe management command comes with sane defaults, which you can override\nif needed:\n\n:--timeout, -t:\n how long to wait for the database before timing out (seconds), default: 180\n:--stable, -s:\n how long to observe whether connection is stable (seconds), default: 5\n:--wait-when-down, -d:\n delay between checks when database is down (seconds), default: 2\n:--wait-when-alive, -a:\n delay between checks when database is up (seconds), default: 1\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vshn/django-probes", "keywords": "django,database,probes,docker,kubernetes", "license": "BSD 3-Clause", "maintainer": "", "maintainer_email": "", "name": "django-probes", "package_url": "https://pypi.org/project/django-probes/", "platform": "", "project_url": "https://pypi.org/project/django-probes/", "project_urls": { "Homepage": "https://github.com/vshn/django-probes" }, "release_url": "https://pypi.org/project/django-probes/1.2.0/", "requires_dist": null, "requires_python": "", "summary": "Make Django wait until database is ready. Probes for Docker and Kubernetes.", "version": "1.2.0" }, "last_serial": 4904542, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "5426f1f2973f818fd4b7b4c381d7a7a6", "sha256": "2b8ebfa1ce5f9a70509bd1331f25237e418d0d3a66c88e8f2b92774ec42c9357" }, "downloads": -1, "filename": "django_probes-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5426f1f2973f818fd4b7b4c381d7a7a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3891, "upload_time": "2019-02-13T14:34:50", "url": "https://files.pythonhosted.org/packages/52/3a/2f263208e397d0b50f12b9df28d6f7d5541afc6dfd23679034c8788e1d2f/django_probes-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7058c5d29f044f8970f99e9ce5ba227", "sha256": "24d0f0a2f57cea03242ebc34ce5ab75a95fb756f03b6d60e4dff938767c3cc50" }, "downloads": -1, "filename": "django_probes-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e7058c5d29f044f8970f99e9ce5ba227", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3106, "upload_time": "2019-02-13T14:34:52", "url": "https://files.pythonhosted.org/packages/09/ac/0b0cf6c1bc3a47fa326e69c628fb1a12cd775096a393b0cc21f55378b327/django_probes-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "302f4258a0ce1e126ac7b459f584a347", "sha256": "5c872c593bd10b965856da1de84322446660634f26f04d79985a181dea350b37" }, "downloads": -1, "filename": "django_probes-1.0.1.tar.gz", "has_sig": false, "md5_digest": "302f4258a0ce1e126ac7b459f584a347", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3063, "upload_time": "2019-02-13T15:48:02", "url": "https://files.pythonhosted.org/packages/90/c6/3edaa0f36b1ebaa6c7f480a9039cabc890099698b264d6858c6627cd55a8/django_probes-1.0.1.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "dde1f684f18744ce6b5164134a364647", "sha256": "f7d7d77c41994aa0d5781e8585deab17f4c3793d5803c764d2baa078ec24758c" }, "downloads": -1, "filename": "django_probes-1.0.3.tar.gz", "has_sig": false, "md5_digest": "dde1f684f18744ce6b5164134a364647", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3440, "upload_time": "2019-02-14T17:24:06", "url": "https://files.pythonhosted.org/packages/26/4a/d1858ccb335056af3427f51c83735e34a6783ae11731c5ab6baa2128dd73/django_probes-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "8d96076e819cc7582e1fcdea01dd79c0", "sha256": "11c9596c56242c0aa96bd532d48421955b14b2400de082e662a1603afdc23d35" }, "downloads": -1, "filename": "django_probes-1.0.4.tar.gz", "has_sig": false, "md5_digest": "8d96076e819cc7582e1fcdea01dd79c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4177, "upload_time": "2019-02-15T14:17:07", "url": "https://files.pythonhosted.org/packages/d8/db/250d55d5fc6b6e133b7ba1435171a3c09f0ebbd095b4bc6b042a173b0124/django_probes-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "01bf577293de05551c8af1aacef813e0", "sha256": "b31da8622ba6217ad6683bd186ade1c7fbfa77c2282e22c7607e4c9bba2c437d" }, "downloads": -1, "filename": "django_probes-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "01bf577293de05551c8af1aacef813e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5250, "upload_time": "2019-02-15T15:24:11", "url": "https://files.pythonhosted.org/packages/71/54/462a65389d54938332a257ac216d2b4a78332e4e51b281cc90cc3e8a5469/django_probes-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15b0751f19b3df0ffd198460c3f47d7f", "sha256": "0aaf792869c67599206c82be4dc65e511e4e3448192f2cf843b9e671e7ac6ea1" }, "downloads": -1, "filename": "django_probes-1.0.5.tar.gz", "has_sig": false, "md5_digest": "15b0751f19b3df0ffd198460c3f47d7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4575, "upload_time": "2019-02-15T15:24:12", "url": "https://files.pythonhosted.org/packages/17/41/553bf5ec8c964e1cdf7cb24819fb13c43cc6c01b84725d8828b0edac6645/django_probes-1.0.5.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "062bea251cdc1ab11f7e9fc5466ed5c3", "sha256": "d77d9255fecb51ea4c02f2f7848d1aeaa608cab90a1a6dac13b8f307998b4ee9" }, "downloads": -1, "filename": "django_probes-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "062bea251cdc1ab11f7e9fc5466ed5c3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5268, "upload_time": "2019-02-15T16:37:50", "url": "https://files.pythonhosted.org/packages/83/c2/3ccacb2321a21216b191d108d827fe5394bbf426da783432c152c44e9a51/django_probes-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bc1830da1db4d84c3b404b11e22d561e", "sha256": "cf8802e00acf73b96f576f3d77bdb5c65c5c74ff2dc7cfb6fd37da064be5759e" }, "downloads": -1, "filename": "django_probes-1.1.0.tar.gz", "has_sig": false, "md5_digest": "bc1830da1db4d84c3b404b11e22d561e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4582, "upload_time": "2019-02-15T16:37:51", "url": "https://files.pythonhosted.org/packages/42/95/ee36b4d0ab1752761bbd065c1648eadea301124b689b04f7ad6c76632488/django_probes-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "70a1b934e0372f1c00ca0f52780a0120", "sha256": "0c0ac794877c53a2268d745c7dc97b83df66edb99fbd37b43ec288f3ba2b913f" }, "downloads": -1, "filename": "django_probes-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "70a1b934e0372f1c00ca0f52780a0120", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5508, "upload_time": "2019-03-06T10:00:23", "url": "https://files.pythonhosted.org/packages/29/9a/b3ed2971a8ca59b6813cf7c10dd0bf7719cb6ef0edd29ea862849653aa69/django_probes-1.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a33ce771179f568cbe7e694e67429df0", "sha256": "8e16546e4a04eab746beeb855be0b326d5b43da8b9d702e72cc5b92f6005b572" }, "downloads": -1, "filename": "django_probes-1.2.0.tar.gz", "has_sig": false, "md5_digest": "a33ce771179f568cbe7e694e67429df0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4782, "upload_time": "2019-03-06T10:00:25", "url": "https://files.pythonhosted.org/packages/fa/c2/f41118c770f66dda3c388ecf63db28cf4e5b144197c4d79c4df3a90df958/django_probes-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "70a1b934e0372f1c00ca0f52780a0120", "sha256": "0c0ac794877c53a2268d745c7dc97b83df66edb99fbd37b43ec288f3ba2b913f" }, "downloads": -1, "filename": "django_probes-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "70a1b934e0372f1c00ca0f52780a0120", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5508, "upload_time": "2019-03-06T10:00:23", "url": "https://files.pythonhosted.org/packages/29/9a/b3ed2971a8ca59b6813cf7c10dd0bf7719cb6ef0edd29ea862849653aa69/django_probes-1.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a33ce771179f568cbe7e694e67429df0", "sha256": "8e16546e4a04eab746beeb855be0b326d5b43da8b9d702e72cc5b92f6005b572" }, "downloads": -1, "filename": "django_probes-1.2.0.tar.gz", "has_sig": false, "md5_digest": "a33ce771179f568cbe7e694e67429df0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4782, "upload_time": "2019-03-06T10:00:25", "url": "https://files.pythonhosted.org/packages/fa/c2/f41118c770f66dda3c388ecf63db28cf4e5b144197c4d79c4df3a90df958/django_probes-1.2.0.tar.gz" } ] }