Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

django - MySQL strict mode with database url in settings

I'm using a database URL string in my settings like:

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

When I migrate I get this warning:

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

Now my question: How can I combine the two things?

I cannot use the "regular" way to set the database settings with a dictionary because my database url comes from an environment variable.

Thx in advance!

like image 983
Ron Avatar asked Sep 21 '25 09:09

Ron


2 Answers

You could update your settings afterwards:

DATABASES['default']['OPTIONS'] = {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"}
like image 152
Marius Avatar answered Sep 22 '25 22:09

Marius


I think this one will help you. you can pass the options as a query string in the 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)
}
like image 39
vijay Avatar answered Sep 22 '25 21:09

vijay