diff options
| author | Simon Charette <charette.s@gmail.com> | 2020-10-04 18:25:29 -0400 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-10-29 22:22:58 +0100 |
| commit | bbe6fbb8768e8fb1aecb96d51c049d7ceaf802d3 (patch) | |
| tree | 7c0e7ac6defc405cd5320066f75ade21bf9943ac /django/db/backends/oracle/client.py | |
| parent | 4ac2d4fa42e1659f328c35b6b8d4761b3419c11a (diff) | |
| download | django-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.py | 21 |
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 |
