summaryrefslogtreecommitdiff
path: root/django/db/backends/oracle/client.py
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2020-10-04 18:25:29 -0400
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-10-29 22:22:58 +0100
commitbbe6fbb8768e8fb1aecb96d51c049d7ceaf802d3 (patch)
tree7c0e7ac6defc405cd5320066f75ade21bf9943ac /django/db/backends/oracle/client.py
parent4ac2d4fa42e1659f328c35b6b8d4761b3419c11a (diff)
downloaddjango-bbe6fbb8768e8fb1aecb96d51c049d7ceaf802d3.tar.gz
Refs #32061 -- Unified DatabaseClient.runshell() in db backends.
Diffstat (limited to 'django/db/backends/oracle/client.py')
-rw-r--r--django/db/backends/oracle/client.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/django/db/backends/oracle/client.py b/django/db/backends/oracle/client.py
index 434481ba81..9920f4ca67 100644
--- a/django/db/backends/oracle/client.py
+++ b/django/db/backends/oracle/client.py
@@ -1,5 +1,4 @@
import shutil
-import subprocess
from django.db.backends.base.client import BaseDatabaseClient
@@ -8,11 +7,21 @@ class DatabaseClient(BaseDatabaseClient):
executable_name = 'sqlplus'
wrapper_name = 'rlwrap'
- def runshell(self, parameters):
- conn_string = self.connection._connect_string()
- args = [self.executable_name, "-L", conn_string]
- wrapper_path = shutil.which(self.wrapper_name)
+ @staticmethod
+ def connect_string(settings_dict):
+ from django.db.backends.oracle.utils import dsn
+
+ return '%s/"%s"@%s' % (
+ settings_dict['USER'],
+ settings_dict['PASSWORD'],
+ dsn(settings_dict),
+ )
+
+ @classmethod
+ def settings_to_cmd_args_env(cls, settings_dict, parameters):
+ args = [cls.executable_name, '-L', cls.connect_string(settings_dict)]
+ wrapper_path = shutil.which(cls.wrapper_name)
if wrapper_path:
args = [wrapper_path, *args]
args.extend(parameters)
- subprocess.run(args, check=True)
+ return args, None