from django.db.backends import BaseDatabaseClient from django.conf import settings import os class DatabaseClient(BaseDatabaseClient): 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('mysql', args)