Author: adrian
Date: 2008-09-08 21:13:58 -0500 (Mon, 08 Sep 2008)
New Revision: 8989
Modified:
django/trunk/django/db/backends/__init__.py
django/trunk/django/db/backends/mysql/client.py
django/trunk/django/db/backends/oracle/client.py
django/trunk/django/db/backends/postgresql/client.py
django/trunk/django/db/backends/sqlite3/client.py
Log:
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
Modified: django/trunk/django/db/backends/__init__.py
===================================================================
--- django/trunk/django/db/backends/__init__.py 2008-09-09 01:56:01 UTC (rev
8988)
+++ django/trunk/django/db/backends/__init__.py 2008-09-09 02:13:58 UTC (rev
8989)
@@ -439,9 +439,13 @@
class BaseDatabaseClient(object):
"""
- This class encapsualtes all backend-specific methods for opening a
- client shell
+ This class encapsulates all backend-specific methods for opening a
+ client shell.
"""
+ # This should be a string representing the name of the executable
+ # (e.g., "psql"). Subclasses must override this.
+ executable_name = None
+
def runshell(self):
raise NotImplementedError()
Modified: django/trunk/django/db/backends/mysql/client.py
===================================================================
--- django/trunk/django/db/backends/mysql/client.py 2008-09-09 01:56:01 UTC
(rev 8988)
+++ django/trunk/django/db/backends/mysql/client.py 2008-09-09 02:13:58 UTC
(rev 8989)
@@ -3,6 +3,8 @@
import os
class DatabaseClient(BaseDatabaseClient):
+ executable_name = 'mysql'
+
def runshell(self):
args = ['']
db = settings.DATABASE_OPTIONS.get('db', settings.DATABASE_NAME)
@@ -11,7 +13,7 @@
host = settings.DATABASE_OPTIONS.get('host', settings.DATABASE_HOST)
port = settings.DATABASE_OPTIONS.get('port', settings.DATABASE_PORT)
defaults_file = settings.DATABASE_OPTIONS.get('read_default_file')
- # Seems to be no good way to set sql_mode with CLI
+ # Seems to be no good way to set sql_mode with CLI.
if defaults_file:
args += ["--defaults-file=%s" % defaults_file]
@@ -26,4 +28,4 @@
if db:
args += [db]
- os.execvp('mysql', args)
+ os.execvp(self.executable_name, args)
Modified: django/trunk/django/db/backends/oracle/client.py
===================================================================
--- django/trunk/django/db/backends/oracle/client.py 2008-09-09 01:56:01 UTC
(rev 8988)
+++ django/trunk/django/db/backends/oracle/client.py 2008-09-09 02:13:58 UTC
(rev 8989)
@@ -3,11 +3,13 @@
import os
class DatabaseClient(BaseDatabaseClient):
+ executable_name = 'sqlplus'
+
def runshell(self):
dsn = settings.DATABASE_USER
if settings.DATABASE_PASSWORD:
dsn += "/%s" % settings.DATABASE_PASSWORD
if settings.DATABASE_NAME:
dsn += "@%s" % settings.DATABASE_NAME
- args = ["sqlplus", "-L", dsn]
- os.execvp("sqlplus", args)
+ args = [self.executable_name, "-L", dsn]
+ os.execvp(self.executable_name, args)
Modified: django/trunk/django/db/backends/postgresql/client.py
===================================================================
--- django/trunk/django/db/backends/postgresql/client.py 2008-09-09
01:56:01 UTC (rev 8988)
+++ django/trunk/django/db/backends/postgresql/client.py 2008-09-09
02:13:58 UTC (rev 8989)
@@ -3,8 +3,10 @@
import os
class DatabaseClient(BaseDatabaseClient):
+ executable_name = 'psql'
+
def runshell(self):
- args = ['psql']
+ args = [self.executable_name]
if settings.DATABASE_USER:
args += ["-U", settings.DATABASE_USER]
if settings.DATABASE_PASSWORD:
@@ -14,4 +16,4 @@
if settings.DATABASE_PORT:
args.extend(["-p", str(settings.DATABASE_PORT)])
args += [settings.DATABASE_NAME]
- os.execvp('psql', args)
+ os.execvp(self.executable_name, args)
Modified: django/trunk/django/db/backends/sqlite3/client.py
===================================================================
--- django/trunk/django/db/backends/sqlite3/client.py 2008-09-09 01:56:01 UTC
(rev 8988)
+++ django/trunk/django/db/backends/sqlite3/client.py 2008-09-09 02:13:58 UTC
(rev 8989)
@@ -3,6 +3,8 @@
import os
class DatabaseClient(BaseDatabaseClient):
+ executable_name = 'sqlite3'
+
def runshell(self):
args = ['', settings.DATABASE_NAME]
- os.execvp('sqlite3', args)
+ os.execvp(self.executable_name, args)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---