2006-05-02 09:31:56 +08:00
|
|
|
import os
|
2009-04-11 19:41:35 +08:00
|
|
|
import sys
|
|
|
|
|
|
|
|
from django.db.backends import BaseDatabaseClient
|
2006-05-02 09:31:56 +08:00
|
|
|
|
2013-07-08 08:39:54 +08:00
|
|
|
|
2008-08-11 20:11:25 +08:00
|
|
|
class DatabaseClient(BaseDatabaseClient):
|
2008-09-09 10:13:58 +08:00
|
|
|
executable_name = 'psql'
|
|
|
|
|
2008-08-11 20:11:25 +08:00
|
|
|
def runshell(self):
|
2009-03-11 11:39:34 +08:00
|
|
|
settings_dict = self.connection.settings_dict
|
2008-09-09 10:13:58 +08:00
|
|
|
args = [self.executable_name]
|
2009-12-22 23:18:51 +08:00
|
|
|
if settings_dict['USER']:
|
|
|
|
args += ["-U", settings_dict['USER']]
|
|
|
|
if settings_dict['HOST']:
|
|
|
|
args.extend(["-h", settings_dict['HOST']])
|
|
|
|
if settings_dict['PORT']:
|
|
|
|
args.extend(["-p", str(settings_dict['PORT'])])
|
|
|
|
args += [settings_dict['NAME']]
|
2009-04-11 19:41:35 +08:00
|
|
|
if os.name == 'nt':
|
|
|
|
sys.exit(os.system(" ".join(args)))
|
|
|
|
else:
|
|
|
|
os.execvp(self.executable_name, args)
|