equal
deleted
inserted
replaced
|
1 import os |
|
2 import sys |
|
3 |
|
4 from django.db.backends import BaseDatabaseClient |
|
5 |
|
6 class DatabaseClient(BaseDatabaseClient): |
|
7 executable_name = 'mysql' |
|
8 |
|
9 def runshell(self): |
|
10 settings_dict = self.connection.settings_dict |
|
11 args = [self.executable_name] |
|
12 db = settings_dict['DATABASE_OPTIONS'].get('db', settings_dict['DATABASE_NAME']) |
|
13 user = settings_dict['DATABASE_OPTIONS'].get('user', settings_dict['DATABASE_USER']) |
|
14 passwd = settings_dict['DATABASE_OPTIONS'].get('passwd', settings_dict['DATABASE_PASSWORD']) |
|
15 host = settings_dict['DATABASE_OPTIONS'].get('host', settings_dict['DATABASE_HOST']) |
|
16 port = settings_dict['DATABASE_OPTIONS'].get('port', settings_dict['DATABASE_PORT']) |
|
17 defaults_file = settings_dict['DATABASE_OPTIONS'].get('read_default_file') |
|
18 # Seems to be no good way to set sql_mode with CLI. |
|
19 |
|
20 if defaults_file: |
|
21 args += ["--defaults-file=%s" % defaults_file] |
|
22 if user: |
|
23 args += ["--user=%s" % user] |
|
24 if passwd: |
|
25 args += ["--password=%s" % passwd] |
|
26 if host: |
|
27 args += ["--host=%s" % host] |
|
28 if port: |
|
29 args += ["--port=%s" % port] |
|
30 if db: |
|
31 args += [db] |
|
32 |
|
33 if os.name == 'nt': |
|
34 sys.exit(os.system(" ".join(args))) |
|
35 else: |
|
36 os.execvp(self.executable_name, args) |
|
37 |