File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1313
1414dbms_defaults = {
1515 'MSSQL' : {
16- 'port' : 1433 ,
17- 'user' : 'sa' ,
1816 'shell' : 'mssql-cli' ,
1917 'shell-windows' : 'mssql-cli.bat' ,
2018 'legacy' : 'sqlcmd'
2119 },
2220
2321 'MySQL' : {
24- 'port' : 3306 ,
25- 'user' : 'root' ,
2622 'shell' : 'mycli' ,
2723 'legacy' : 'mysql'
2824 },
2925
3026 'Oracle' : {
31- 'port' : 1521 ,
32- 'user' : 'sys' ,
3327 'shell' : 'sql' ,
3428 'shell-windows' : 'sql.exe' ,
3529 'legacy' : 'sqlplus'
3630 },
3731
3832 'PostgreSQL' : {
39- 'port' : 5432 ,
40- 'user' : 'postgres' ,
4133 'shell' : 'pgcli' ,
4234 'legacy' : 'psql'
4335 },
@@ -142,8 +134,8 @@ def on_ok(self): # NOSONAR
142134 except KeyError :
143135 dsn = ''
144136 host = self .host .value or 'localhost'
145- port = self .port .value or db_defaults . get ( 'port' )
146- user = self .user .value or db_defaults . get ( 'user' )
137+ port = self .port .value or tb . defaults [ 'port' ]. get ( dbtype . lower () )
138+ user = self .user .value or tb . defaults [ 'db_user' ]. get ( dbtype . lower () )
147139 passwd = self .passwd .value
148140 db = self .db .value
149141
@@ -229,8 +221,7 @@ def on_ok(self): # NOSONAR
229221 # SPECIAL CASES FOR RDBMS
230222 if dbtype == 'MSSQL' :
231223 # named pipe connection to LocalDB
232- localdb = r'(localdb)\mssqllocaldb'
233- if localdb in dsn .lower () or host .lower () == localdb :
224+ if tb .is_localdb (dsn ) or tb .is_localdb (host ):
234225 opts .remove ('-N' ) # `-N` = "encrypt" (NOSONAR)
235226 conn_params [5 ] = '{host}' # host,port -> host
236227
Original file line number Diff line number Diff line change 1- import sys
1+ import sys , urllib
2+
3+ defaults = {
4+ 'port' : {
5+ 'mssql' : 1433 ,
6+ 'mysql' : 3306 ,
7+ 'oracle' : 1521 ,
8+ 'postgresql' : 5432
9+ },
10+
11+ 'db_user' : {
12+ 'mssql' : 'sa' ,
13+ 'mysql' : 'root' ,
14+ 'oracle' : 'sys' ,
15+ 'postgresql' : 'postgres'
16+ }
17+ }
18+
19+ def is_localdb (dsn ):
20+ localdb = r'(localdb)\mssqllocaldb'
21+ parsed_url = urllib .parse .urlsplit (dsn )
22+
23+ if parsed_url .scheme == 'mssql' :
24+ return parsed_url .hostname == localdb
25+
26+ elif not parsed_url .scheme :
27+ return localdb in parsed_url .path .lower ()
28+
29+ else :
30+ return False
231
332# https://pyinstaller.readthedocs.io/en/stable/runtime-information.html
433def is_pyinstaller ():
You can’t perform that action at this time.
0 commit comments