Django

Code

Changeset 8989

Show
Ignore:
Timestamp:
09/08/08 21:13:58 (4 months ago)
Author:
adrian
Message:

db: Gave each DatabaseClient? class an 'executable_name' attribute (e.g., 'psql' or 'mysql'), so that we can use it to make a more helpful error message. Refs #8978

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/backends/__init__.py

    r8782 r8989  
    440440class BaseDatabaseClient(object): 
    441441    """ 
    442     This class encapsualtes all backend-specific methods for opening a 
    443     client shell 
    444     """ 
     442    This class encapsulates all backend-specific methods for opening a 
     443    client shell. 
     444    """ 
     445    # This should be a string representing the name of the executable 
     446    # (e.g., "psql"). Subclasses must override this. 
     447    executable_name = None 
     448 
    445449    def runshell(self): 
    446450        raise NotImplementedError() 
  • django/trunk/django/db/backends/mysql/client.py

    r8296 r8989  
    44 
    55class DatabaseClient(BaseDatabaseClient): 
     6    executable_name = 'mysql' 
     7 
    68    def runshell(self): 
    79        args = [''] 
     
    1214        port = settings.DATABASE_OPTIONS.get('port', settings.DATABASE_PORT) 
    1315        defaults_file = settings.DATABASE_OPTIONS.get('read_default_file') 
    14         # Seems to be no good way to set sql_mode with CLI 
     16        # Seems to be no good way to set sql_mode with CLI. 
    1517     
    1618        if defaults_file: 
     
    2729            args += [db] 
    2830 
    29         os.execvp('mysql', args) 
     31        os.execvp(self.executable_name, args) 
  • django/trunk/django/db/backends/oracle/client.py

    r8296 r8989  
    44 
    55class DatabaseClient(BaseDatabaseClient): 
     6    executable_name = 'sqlplus' 
     7 
    68    def runshell(self): 
    79        dsn = settings.DATABASE_USER 
     
    1012        if settings.DATABASE_NAME: 
    1113            dsn += "@%s" % settings.DATABASE_NAME 
    12         args = ["sqlplus", "-L", dsn] 
    13         os.execvp("sqlplus", args) 
     14        args = [self.executable_name, "-L", dsn] 
     15        os.execvp(self.executable_name, args) 
  • django/trunk/django/db/backends/postgresql/client.py

    r8296 r8989  
    44 
    55class DatabaseClient(BaseDatabaseClient): 
     6    executable_name = 'psql' 
     7 
    68    def runshell(self): 
    7         args = ['psql'
     9        args = [self.executable_name
    810        if settings.DATABASE_USER: 
    911            args += ["-U", settings.DATABASE_USER] 
     
    1517            args.extend(["-p", str(settings.DATABASE_PORT)]) 
    1618        args += [settings.DATABASE_NAME] 
    17         os.execvp('psql', args) 
     19        os.execvp(self.executable_name, args) 
  • django/trunk/django/db/backends/sqlite3/client.py

    r8296 r8989  
    44 
    55class DatabaseClient(BaseDatabaseClient): 
     6    executable_name = 'sqlite3' 
     7 
    68    def runshell(self): 
    79        args = ['', settings.DATABASE_NAME] 
    8         os.execvp('sqlite3', args) 
     10        os.execvp(self.executable_name, args)