2017-09-27 91 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) 
}