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.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/django/db/backends/mysql/client.py b/django/db/backends/mysql/client.py
index 2106c4d3da..dc1d9846b8 100644
--- a/django/db/backends/mysql/client.py
+++ b/django/db/backends/mysql/client.py
@@ -6,14 +6,15 @@ from django.db.backends import BaseDatabaseClient
class DatabaseClient(BaseDatabaseClient):
executable_name = 'mysql'
- def runshell(self):
- settings_dict = self.connection.settings_dict
- args = [self.executable_name]
+ @classmethod
+ def settings_to_cmd_args(cls, settings_dict):
+ args = [cls.executable_name]
db = settings_dict['OPTIONS'].get('db', settings_dict['NAME'])
user = settings_dict['OPTIONS'].get('user', settings_dict['USER'])
passwd = settings_dict['OPTIONS'].get('passwd', settings_dict['PASSWORD'])
host = settings_dict['OPTIONS'].get('host', settings_dict['HOST'])
port = settings_dict['OPTIONS'].get('port', settings_dict['PORT'])
+ cert = settings_dict['OPTIONS'].get('ssl', {}).get('ca')
defaults_file = settings_dict['OPTIONS'].get('read_default_file')
# Seems to be no good way to set sql_mode with CLI.
@@ -30,7 +31,12 @@ class DatabaseClient(BaseDatabaseClient):
args += ["--host=%s" % host]
if port:
args += ["--port=%s" % port]
+ if cert:
+ args += ["--ssl-ca=%s" % cert]
if db:
args += [db]
+ return args
+ def runshell(self):
+ args = DatabaseClient.settings_to_cmd_args(self.connection.settings_dict)
subprocess.call(args)