项目环境的系统检查。
项目描述
项目环境的系统检查。
通过我的书籍 提高您的Django和Git技能。
需求
支持Python 3.8到3.12。
支持Django 3.2到5.1。
安装
首先,使用
pip安装
python -m pip install django-version-checks
其次,将应用程序添加到您的
INSTALLED_APPS设置
INSTALLED_APPS = [
...,
"django_version_checks",
...,
]
第三,添加一个
VERSION_CHECKS设置,包含您要执行的版本检查(如以下文档所述)。例如
VERSION_CHECKS = {
"python": "==3.9.*",
}
使用
请参阅介绍性博客文章。
django-version-checks添加了几个
系统检查,可以帮助确保当前环境有正确的Python、数据库等版本。这在跨所有基础设施协调升级时非常有用。
请注意,django-version-checks不会检查Python依赖项的版本。这是因为不匹配的依赖项版本可能在系统检查运行之前导致
ImportError或其他导入时间问题。要检查Python依赖项的版本,请尝试pip-lock。
检查使用PEP 440规范格式,通过packaging模块实现。这与pip使用的格式相同,允许在指定有效版本范围内有一定的灵活性。其中~=运算符特别有用。例如,您可以使用~=3.9.1来表示“3.9.1+,但小于3.10.0”,这样环境就可以在不更改的情况下采用补丁版本,但不能更多。
以下是对单个检查的文档说明。每个检查都占据VERSION_CHECKS字典中的一个键,并说明了其支持的规范类型。如果检查配置错误,使用不正确的类型或规范,您将看到以下系统检查错误之一
dvc.E001:检查配置错误。<check>期望一个<type>,但得到了<value>。
dvc.E002:检查配置错误。<value>不是一个有效的PEP440规范。
mysql检查
此检查将当前版本的MariaDB/MySQL与给定的规范进行比较。范围可以指定为一个单独的字符串
VERSION_CHECKS = {
"mysql": "~=10.5.8",
}
…或者是一个将数据库别名映射到它们的规范的字典
VERSION_CHECKS = {
"postgresql": {
"default": "~=10.5.8",
"analytics": "~=10.4.17",
},
}
注意:作为数据库检查,Django仅在此检查期间运行migrate或使用check --database(Django 3.1+)/ check --tags database(Django <3.1)。请参阅(《文档》)。
如果此检查失败,系统检查将报告
dvc.E005:对于<alias>数据库连接,当前版本的MariaDB/MySQL(<version>)与指定的范围(<range>)不匹配。
postgresql检查
此检查将当前版本的PostgreSQL与给定的规范进行比较。范围可以指定为一个单独的字符串
VERSION_CHECKS = {
"postgresql": "~=12.2",
}
…或者是一个将数据库别名映射到它们的规范的字典
VERSION_CHECKS = {
"postgresql": {
"default": "~=12.2",
"analytics": "~=13.1",
},
}
注意:作为数据库检查,Django仅在此检查期间运行migrate或使用check --database(Django 3.1+)/ check --tags database(Django <3.1)。请参阅(《文档》)。
如果此检查失败,系统检查将报告
dvc.E004:对于<alias>数据库连接,当前版本的PostgreSQL(<version>)与指定的范围(<range>)不匹配。
python检查
此检查将当前版本的Python与给定的单个规范进行比较
VERSION_CHECKS = {
"python": "~=3.9.1",
}
如果此检查失败,系统检查将报告
dvc.E003:当前版本的Python(<version>)与指定的范围(<range>)不匹配。
sqlite检查
此检查将当前版本的SQLite与给定的单个规范进行比较
VERSION_CHECKS = {
"sqlite": "~=3.37",
}
注意:作为数据库检查,Django仅在此检查期间运行migrate或使用check --database(Django 3.1+)/ check --tags database(Django <3.1)。请参阅(《文档》)。
如果此检查失败,系统检查将报告
dvc.E006:当前版本的SQLite(<version>)与指定的范围(<range>)不匹配。
示例升级
让我们通过使用django-version-checks将Python从版本3.8升级到3.9来演示。我们有一个由CI、预发布和生产环境以及几位开发者的开发机器组成的基础设施。
首先,我们添加一个现有的检查,以确保所有环境都在Python 3.8上
VERSION_CHECKS = {
"python": "~=3.8.6",
}
其次,我们重写规范以允许Python 3.9的版本
VERSION_CHECKS = {
"python": ">=3.8.6,<3.10.0",
}
第三,我们升级我们的基础设施。我们可能按以下顺序升级:CI、开发环境、预发布、生产。每个环境都应自动运行manage.py check,如Django部署清单所述。
第四,我们再次更改规范,仅允许Python 3.9
VERSION_CHECKS = {
"python": "~=3.9.1",
}
现在我们已经升级了!🎉
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
哈希值 for django_version_checks-1.12.0-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7988587b2cdf6c2e489a0997cd96ce66f1015846feba2838c7fd76893bcefd94 |
|
MD5 | 4821d43e2742f0a0e2a13b805d191fc6 |
|
BLAKE2b-256 | 3d669d516b377f4906de39b8e4f509079385b7ca167aa0ffaa2553d827ab686d |