跳转到主要内容

使Django等待数据库准备就绪。Docker和Kubernetes的探针。

项目描述

Django-probes PyPI上的最新版本

GitHub Workflow Status GitHub Workflow Status Python versions Software license

提供 Django 管理命令,用于检查主数据库是否准备好接收连接。

在 Kubernetes 或 OpenShift 初始化容器 中运行此命令,使您的 Django 应用程序等待数据库可用(例如运行数据库迁移)。

为什么我要使用这个应用程序?

wait_for_database 是一个用于 Django 支持的所有数据库引擎的 单一 命令。它将自动检查您在 Django 项目设置中配置的数据库。无需为 Postgres、MariaDB、Oracle 等编写特定的等待命令,也无需拉取特定数据库引擎的容器来运行数据库就绪性检查。

安装

使用 pip 安装 django-probes 是最简单的方法。

$ pip install django-probes

基本用法

  1. 将 django-probes 添加到您的 Django 应用程序中。

INSTALLED_APPS = [
    ...
    'django_probes',
]

2. 在 Kubernetes/OpenShift 部署配置中添加一个 初始化容器,该容器调用 wait_for_database 管理命令。

- 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']

使用您的自己的命令

或者,您可以将 wait_for_database 命令集成到您自己的管理命令中,并使用与上面类似的 Kubernetes 设置进行数据库迁移、加载初始数据等操作。

from django.core.management import call_command

# ...
call_command('wait_for_database')

命令行选项

管理命令带有合理的默认值,如果需要,您可以覆盖它们。

–timeout, -t:

在超时之前等待数据库的时间(秒),默认值:180

–stable, -s:

观察连接是否稳定的时间(秒),默认值:5

–wait-when-down, -d:

数据库关闭时检查之间的延迟(秒),默认值:2

–wait-when-alive, -a:

数据库处于活动状态时检查之间的延迟(秒),默认值:1

–database:

等待 settings.DATABASES 中的哪个数据库,默认值:default

项目详细信息


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

django_probes-1.7.0.tar.gz (5.5 kB 查看散列)

上传时间:

构建分布

django_probes-1.7.0-py3-none-any.whl (5.8 kB 查看散列)

上传时间: Python 3

由以下提供支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面