web/lib/django/db/backends/mysql/client.py
changeset 0 0d40e90630ef
child 29 cc9b7e14412b
equal deleted inserted replaced
-1:000000000000 0:0d40e90630ef
       
     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