From 8931e5a3011a3c7a259b826bf806adec8bbd74a2 Mon Sep 17 00:00:00 2001 From: arthurhuang Date: Fri, 3 Jan 2025 10:45:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E8=A1=A5=E4=B8=81?= =?UTF-8?q?=E5=85=BC=E5=AE=B9mysql5.7=20#1464?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/default.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/config/default.py b/config/default.py index 082dbbc0..cc128a39 100644 --- a/config/default.py +++ b/config/default.py @@ -33,6 +33,9 @@ from blueapps.opentelemetry.utils import inject_logging_trace_info from django.http import HttpResponseRedirect from django.urls import reverse +from django.db.backends.mysql.features import DatabaseFeatures +from django.utils.functional import cached_property + from config import ( APP_CODE, @@ -376,7 +379,9 @@ def _(s): if IS_USE_REDIS: CACHE_BACKEND_TYPE = os.environ.get("CACHE_BACKEND_TYPE", "RedisCache") REDIS_PORT = os.environ.get("BKAPP_REDIS_PORT", 6379) - REDIS_PASSWORD = os.environ.get("BKAPP_REDIS_PASSWORD", "") # 密码中不能包括敏感字符,例如":" + REDIS_PASSWORD = os.environ.get( + "BKAPP_REDIS_PASSWORD", "" + ) # 密码中不能包括敏感字符,例如":" REDIS_SERVICE_NAME = os.environ.get("BKAPP_REDIS_SERVICE_NAME", "mymaster") REDIS_MODE = os.environ.get("BKAPP_REDIS_MODE", "single") REDIS_DB = os.environ.get("BKAPP_REDIS_DB", 0) @@ -983,3 +988,16 @@ def redirect_func(request): "BKAPP_QW_WEB_HOOK_URL", "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={}", ) + + +class PatchFeatures: + @cached_property + def minimum_database_version(self): + if self.connection.mysql_is_mariadb: + return (10, 4) + else: + return (5, 7) + + +# 将补丁应用到 DatabaseFeatures 中 +DatabaseFeatures.minimum_database_version = PatchFeatures.minimum_database_version