1+ import os
12import re
3+ import subprocess
24
35from django .db .backends .base .client import BaseDatabaseClient
46
@@ -11,7 +13,8 @@ def runshell(self):
1113 user = options .get ('user' , settings_dict ['USER' ])
1214 password = options .get ('passwd' , settings_dict ['PASSWORD' ])
1315
14- driver = options .get ('driver' , '' )
16+ default_driver = 'SQL Server' if os .name == 'nt' else 'FreeTDS'
17+ driver = options .get ('driver' , default_driver )
1518 ms_drivers = re .compile ('.*SQL (Server$|(Server )?Native Client)' )
1619 if not ms_drivers .match (driver ):
1720 self .executable_name = 'isql'
@@ -24,6 +27,8 @@ def runshell(self):
2427
2528 args = [self .executable_name ]
2629 if server :
30+ if port :
31+ server = ',' .join ((server , port ))
2732 args += ["-S" , server ]
2833 if user :
2934 args += ["-U" , user ]
@@ -39,8 +44,7 @@ def runshell(self):
3944 dsn = options .get ('dsn' , '' )
4045 args = ['%s -v %s %s %s' % (self .executable_name , dsn , user , password )]
4146
42- import subprocess
4347 try :
44- subprocess .call (args , shell = True )
48+ subprocess .check_call (args )
4549 except KeyboardInterrupt :
4650 pass
0 commit comments