django - MySQL 在设置中使用数据库 url 的严格模式
django - MySQL strict mode with database url in settings
我在设置中使用数据库 URL 字符串,例如:
DATABASES = {
'default': "mysql://root:@localhost:3306/mydb"
}
迁移时收到此警告:
MySQL Strict Mode is not set for database connection 'default'
现在我的问题是:如何将两者结合起来?
我不能用"regular"的方式用字典设置数据库,因为我的数据库url来自环境变量
提前致谢!
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'HOST': '127.0.0.1',
'PORT': '3306',
'USER': 'root',
'PASSWORD': 'test123',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4',
}
}
}
尝试在 settings.py 中提供 init_command 个数据库选项
如果想了解更多信息,请参阅文档 django_mysql.W001: Strict Mode
我认为这篇文章会对您有所帮助。
您可以在 URL
中将 options 作为查询字符串传递
DATABASES = {
'default': dj_database_url.config(default="mssql://USER:PASSWORD@HOST:PORT/NAME?init_command=SET sql_mode='STRICT_TRANS_TABLES'&charset=utf8mb4", conn_max_age=500)
}
您之后可以更新您的设置:
DATABASES['default']['OPTIONS'] = {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"}
我在设置中使用数据库 URL 字符串,例如:
DATABASES = {
'default': "mysql://root:@localhost:3306/mydb"
}
迁移时收到此警告:
MySQL Strict Mode is not set for database connection 'default'
现在我的问题是:如何将两者结合起来?
我不能用"regular"的方式用字典设置数据库,因为我的数据库url来自环境变量
提前致谢!
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'HOST': '127.0.0.1',
'PORT': '3306',
'USER': 'root',
'PASSWORD': 'test123',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4',
}
}
}
尝试在 settings.py 中提供 init_command 个数据库选项 如果想了解更多信息,请参阅文档 django_mysql.W001: Strict Mode
我认为这篇文章会对您有所帮助。 您可以在 URL
中将 options 作为查询字符串传递DATABASES = {
'default': dj_database_url.config(default="mssql://USER:PASSWORD@HOST:PORT/NAME?init_command=SET sql_mode='STRICT_TRANS_TABLES'&charset=utf8mb4", conn_max_age=500)
}
您之后可以更新您的设置:
DATABASES['default']['OPTIONS'] = {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"}