11import re
2+ import subprocess
23
34from django .db .backends .base .client import BaseDatabaseClient
45
@@ -11,8 +12,8 @@ def runshell(self):
1112 user = options .get ('user' , settings_dict ['USER' ])
1213 password = options .get ('passwd' , settings_dict ['PASSWORD' ])
1314
14- driver = options .get ('driver' , '' )
15- ms_drivers = re .compile ('.* SQL ( Server$|( Server )? Native Client) ' )
15+ driver = options .get ('driver' , 'ODBC Driver 13 for SQL Server ' )
16+ ms_drivers = re .compile ('^ODBC Driver .* for SQL Server$|^SQL Server Native Client' )
1617 if not ms_drivers .match (driver ):
1718 self .executable_name = 'isql'
1819
@@ -24,6 +25,8 @@ def runshell(self):
2425
2526 args = [self .executable_name ]
2627 if server :
28+ if port :
29+ server = ',' .join ((server , port ))
2730 args += ["-S" , server ]
2831 if user :
2932 args += ["-U" , user ]
@@ -39,8 +42,7 @@ def runshell(self):
3942 dsn = options .get ('dsn' , '' )
4043 args = ['%s -v %s %s %s' % (self .executable_name , dsn , user , password )]
4144
42- import subprocess
4345 try :
44- subprocess .call (args , shell = True )
46+ subprocess .check_call (args )
4547 except KeyboardInterrupt :
4648 pass
0 commit comments