diff --git a/sql/engines/__init__.py b/sql/engines/__init__.py index 3223f9492d..508a8dd9b1 100644 --- a/sql/engines/__init__.py +++ b/sql/engines/__init__.py @@ -20,6 +20,7 @@ def __init__(self, instance=None): self.password = instance.password self.db_name = instance.db_name self.mode = instance.mode + self.is_ssl = instance.is_ssl # 判断如果配置了隧道则连接隧道,只测试了MySQL if self.instance.tunnel: diff --git a/sql/engines/redis.py b/sql/engines/redis.py index 78072208bb..e8b8d6410e 100644 --- a/sql/engines/redis.py +++ b/sql/engines/redis.py @@ -33,6 +33,7 @@ def get_connection(self, db_name=None): encoding_errors="ignore", decode_responses=True, socket_connect_timeout=10, + ssl=self.is_ssl, ) else: return redis.Redis( @@ -43,6 +44,7 @@ def get_connection(self, db_name=None): encoding_errors="ignore", decode_responses=True, socket_connect_timeout=10, + ssl=self.is_ssl, ) @property diff --git a/sql/models.py b/sql/models.py index c5daa6eedd..98f32af8a2 100755 --- a/sql/models.py +++ b/sql/models.py @@ -195,6 +195,7 @@ class Instance(models.Model): password = fields.EncryptedCharField( verbose_name="密码", max_length=300, default="", blank=True ) + is_ssl = models.BooleanField("是否启用SSL", default=False) db_name = models.CharField("数据库", max_length=64, default="", blank=True) charset = models.CharField("字符集", max_length=20, default="", blank=True) service_name = models.CharField( diff --git a/src/init_sql/v1.9.3.sql b/src/init_sql/v1.9.3.sql new file mode 100644 index 0000000000..d82c08bc42 --- /dev/null +++ b/src/init_sql/v1.9.3.sql @@ -0,0 +1 @@ +ALTER TABLE sql_instance ADD is_ssl tinyint(1) DEFAULT 0 COMMENT '是否启用SSL'; \ No newline at end of file