summaryrefslogtreecommitdiff
path: root/django/db/backends/mysql/client.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/backends/mysql/client.py')
-rw-r--r--django/db/backends/mysql/client.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/django/db/backends/mysql/client.py b/django/db/backends/mysql/client.py
index f9d6297b8e..116074a9ce 100644
--- a/django/db/backends/mysql/client.py
+++ b/django/db/backends/mysql/client.py
@@ -3,12 +3,25 @@ import os
def runshell():
args = ['']
- args += ["--user=%s" % settings.DATABASE_USER]
- if settings.DATABASE_PASSWORD:
- args += ["--password=%s" % settings.DATABASE_PASSWORD]
- if settings.DATABASE_HOST:
- args += ["--host=%s" % settings.DATABASE_HOST]
- if settings.DATABASE_PORT:
- args += ["--port=%s" % settings.DATABASE_PORT]
- args += [settings.DATABASE_NAME]
+ 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('mysql', args)