让django等到数据库准备好。Docker和Kubernetes的探测器。
django-probes的Python项目详细描述
django探针
提供django管理命令以检查主数据库 已准备好接受连接。
在kubernetes或openshiftInit Container中运行此命令 Django应用程序等待数据库可用(例如运行 数据库迁移)。
为什么要使用此应用程序?
wait_for_database是用于all数据库引擎的single命令 Django支持。它会自动检查您配置的数据库 在您的django项目设置中。不需要编写特定的等待命令 对于postgres、mariadb、oracle等,不需要调用数据库引擎 仅用于运行数据库就绪性检查的特定容器。
安装
安装django探针的最简单方法是使用pip
$ pip install django-probes
基本用法
- 将django探测添加到django应用程序:
INSTALLED_APPS=[...'django_probes',]
2.在kubernetes/openshift部署中添加Init Container 配置,它调用wait_for_databasemanagement命令:
-kind:DeploymentapiVersion:apps/v1spec:template:spec:initContainers:-name:check-db-readyimage:my-django-app:latestenvFrom:-secretRef:name:djangocommand:['python','manage.py','wait_for_database']
命令行选项
management命令带有正常的默认值,您可以覆盖这些默认值 如果需要:
–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 |