summaryrefslogtreecommitdiff
path: root/django/db/backends/oracle/client.py
diff options
context:
space:
mode:
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