2017-09-27 57 views
0

我用我的设置,如数据库URL字符串:Django的 - MySQL的严格模式在设置数据库URL

DATABASES = { 
    'default': "mysql://root:@localhost:3306/mydb" 
} 

当我迁移我得到这样的警告:

MySQL Strict Mode is not set for database connection 'default' 

现在我的问题:我如何将这两件事结合起来?

我不能使用“常规”的方式,因为我的数据库URL来自一个环境变量借助词典设置数据库设置。

Thx提前!

+0

你尝试[DJ-数据库URL](https://github.com/kennethreitz/dj-database-url)可以在帮你? –

+0

@BearBrown可能会奏效,但并非不存在使用其他插件的方法吗? – Ron

+0

我觉得没什么,只要你添加片段,但是这将是该插件的代码一样。 –

回答

0
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

+0

THX的输入,但正如我在我的问题,我不能使用字典说,我一定要坚持到URL字符串。有关于此的任何想法? – Ron

+0

现在只有你提到对吗? – Robert

+0

对不起,我没有明白你的意思。 – Ron

0

我认为,这将帮助你。 可以通过选项作为URL查询字符串

DATABASES = { 
    'default': dj_database_url.config(default="mssql://USER:[email protected]:PORT/NAME?init_command=SET sql_mode='STRICT_TRANS_TABLES'&charset=utf8mb4", conn_max_age=500) 
}