Do not rely on dicts.merge to change target
Also make dicts.merge actually not touch target. This is much cleaner
than modifying in place, especially since we assign the result of the
dicts.merge call to target most of the time anyway.
Patch by: Sverre Rabbelier
from django.db.backends import BaseDatabaseClientfrom django.conf import settingsimport osclass DatabaseClient(BaseDatabaseClient): executable_name = 'mysql' def runshell(self): args = [''] db = settings.DATABASE_OPTIONS.get('db', settings.DATABASE_NAME) user = settings.DATABASE_OPTIONS.get('user', settings.DATABASE_USER) passwd = settings.DATABASE_OPTIONS.get('passwd', settings.DATABASE_PASSWORD) host = settings.DATABASE_OPTIONS.get('host', settings.DATABASE_HOST) port = settings.DATABASE_OPTIONS.get('port', settings.DATABASE_PORT) defaults_file = settings.DATABASE_OPTIONS.get('read_default_file') # Seems to be no good way to set sql_mode with CLI. if defaults_file: args += ["--defaults-file=%s" % defaults_file] if user: args += ["--user=%s" % user] if passwd: args += ["--password=%s" % passwd] if host: args += ["--host=%s" % host] if port: args += ["--port=%s" % port] if db: args += [db] os.execvp(self.executable_name, args)