Django连接SingleStore报错:Unknown system variable 'default_storage_engine'
解决Django连接SingleStore时"Unknown system variable 'default_storage_engine'"报错
问题原因
Django的mysql.connector.django引擎会尝试访问MySQL特有的default_storage_engine系统变量,但SingleStore(原MemSQL)并不支持这个变量,它使用default_table_type定义默认表类型,因此触发兼容性报错。
解决方案
方案1:使用SingleStore官方Django后端(推荐)
SingleStore提供了专属的Django后端,已处理好与Django的兼容性问题,步骤如下:
- 安装官方后端包:
pip install django-singlestore
- 修改数据库配置中的
ENGINE为django_singlestore:
DATABASES = { 'default': { 'ENGINE': 'django_singlestore', 'HOST': 'HOST', 'NAME': 'NAME', 'USER': 'root', 'PASSWORD': '********', 'PORT': '3306', 'OPTIONS': { 'charset': 'utf8mb4', } } }
方案2:兼容现有mysql.connector.django引擎
如果无法更换引擎,可通过添加初始化命令绕过变量检查,在OPTIONS中指定init_command设置SingleStore兼容的默认表类型:
DATABASES = { 'default': { 'ENGINE': 'mysql.connector.django', 'HOST': 'HOST', 'NAME': 'NAME', 'USER': 'root', 'PASSWORD': '********', 'PORT': '3306', 'OPTIONS': { 'charset': 'utf8mb4', # SingleStore 6.8版本默认表类型为MEMORY 'init_command': "SET default_table_type='MEMORY'" } } }
同时需确保Django的数据库操作不依赖MySQL特有的存储引擎逻辑,避免后续兼容性问题。
内容的提问来源于stack exchange,提问作者fafa
相关产品推荐
相关产品推荐

