Ticket #9972: 9972.diff

File 9972.diff, 2.9 KB (added by ikelly, 7 years ago)
  • django/db/backends/oracle/base.py

     
    245245    def _valid_connection(self):
    246246        return self.connection is not None
    247247
     248    def _connect_string(self, settings):
     249        if len(settings.DATABASE_HOST.strip()) == 0:
     250            settings.DATABASE_HOST = 'localhost'
     251        if len(settings.DATABASE_PORT.strip()) != 0:
     252            dsn = '%s:%s/%s' % (settings.DATABASE_HOST,
     253                                settings.DATABASE_PORT,
     254                                settings.DATABASE_NAME)
     255        else:
     256            dsn = settings.DATABASE_NAME
     257        return "%s/%s@%s" % (settings.DATABASE_USER,
     258                             settings.DATABASE_PASSWORD, dsn)
     259
    248260    def _cursor(self, settings):
    249261        cursor = None
    250262        if not self._valid_connection():
    251             if len(settings.DATABASE_HOST.strip()) == 0:
    252                 settings.DATABASE_HOST = 'localhost'
    253             if len(settings.DATABASE_PORT.strip()) != 0:
    254                 dsn = Database.makedsn(settings.DATABASE_HOST,
    255                                        int(settings.DATABASE_PORT),
    256                                        settings.DATABASE_NAME)
    257                 self.connection = Database.connect(settings.DATABASE_USER,
    258                                                    settings.DATABASE_PASSWORD,
    259                                                    dsn, **self.options)
    260             else:
    261                 conn_string = "%s/%s@%s" % (settings.DATABASE_USER,
    262                                             settings.DATABASE_PASSWORD,
    263                                             settings.DATABASE_NAME)
    264                 self.connection = Database.connect(conn_string, **self.options)
     263            conn_string = self._connect_string(settings)
     264            self.connection = Database.connect(conn_string, **self.options)
    265265            cursor = FormatStylePlaceholderCursor(self.connection)
    266266            # Set oracle date to ansi date format.  This only needs to execute
    267267            # once when we create a new connection.
  • django/db/backends/oracle/client.py

     
    66    executable_name = 'sqlplus'
    77
    88    def runshell(self):
    9         dsn = settings.DATABASE_USER
    10         if settings.DATABASE_PASSWORD:
    11             dsn += "/%s" % settings.DATABASE_PASSWORD
    12         if settings.DATABASE_NAME:
    13             dsn += "@%s" % settings.DATABASE_NAME
    14         args = [self.executable_name, "-L", dsn]
     9        from django.db import connection
     10        conn_string = connection._connect_string(settings)
     11        args = [self.executable_name, "-L", conn_string]
    1512        os.execvp(self.executable_name, args)
Back to Top