2008-08-11 20:11:25 +08:00
|
|
|
from django.db.backends import BaseDatabaseClient
|
2006-05-02 09:31:56 +08:00
|
|
|
from django.conf import settings
|
|
|
|
import os
|
|
|
|
|
2008-08-11 20:11:25 +08:00
|
|
|
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
|
2007-03-14 20:08:19 +08:00
|
|
|
|
2008-08-11 20:11:25 +08:00
|
|
|
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]
|
2007-03-14 20:08:19 +08:00
|
|
|
|
2008-08-11 20:11:25 +08:00
|
|
|
os.execvp('mysql', args)
|