django - 在设置中带有数据库 url 的 MySQL 严格模式

Ron*_*Ron 3 python mysql django django-settings

我在我的设置中使用了一个数据库 URL 字符串,例如:

DATABASES = {
    'default': "mysql://root:@localhost:3306/mydb"
}
Run Code Online (Sandbox Code Playgroud)

当我迁移时,我收到此警告:

MySQL Strict Mode is not set for database connection 'default'
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:我怎样才能把这两件事结合起来?

我无法使用“常规”方式通过字典设置数据库设置,因为我的数据库 url 来自环境变量。

提前谢谢!

vij*_*jay 5

我想这个会对你有所帮助。您可以将选项作为 URL 中的查询字符串传递

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)
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*ius 5

之后您可以更新您的设置:

DATABASES['default']['OPTIONS'] = {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"}
Run Code Online (Sandbox Code Playgroud)