Author: mtredinnick
Date: 2009-04-11 06:41:35 -0500 (Sat, 11 Apr 2009)
New Revision: 10517

Modified:
   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:
Fixed #10357 -- Fixed the "dbshell" command for Windows users.

Modified: django/trunk/django/db/backends/mysql/client.py
===================================================================
--- django/trunk/django/db/backends/mysql/client.py     2009-04-11 11:33:10 UTC 
(rev 10516)
+++ django/trunk/django/db/backends/mysql/client.py     2009-04-11 11:41:35 UTC 
(rev 10517)
@@ -1,12 +1,14 @@
-from django.db.backends import BaseDatabaseClient
 import os
+import sys
 
+from django.db.backends import BaseDatabaseClient
+
 class DatabaseClient(BaseDatabaseClient):
     executable_name = 'mysql'
 
     def runshell(self):
         settings_dict = self.connection.settings_dict
-        args = ['']
+        args = [self.executable_name]
         db = settings_dict['DATABASE_OPTIONS'].get('db', 
settings_dict['DATABASE_NAME'])
         user = settings_dict['DATABASE_OPTIONS'].get('user', 
settings_dict['DATABASE_USER'])
         passwd = settings_dict['DATABASE_OPTIONS'].get('passwd', 
settings_dict['DATABASE_PASSWORD'])
@@ -14,7 +16,7 @@
         port = settings_dict['DATABASE_OPTIONS'].get('port', 
settings_dict['DATABASE_PORT'])
         defaults_file = 
settings_dict['DATABASE_OPTIONS'].get('read_default_file')
         # Seems to be no good way to set sql_mode with CLI.
-    
+
         if defaults_file:
             args += ["--defaults-file=%s" % defaults_file]
         if user:
@@ -28,4 +30,8 @@
         if db:
             args += [db]
 
-        os.execvp(self.executable_name, args)
+        if os.name == 'nt':
+            sys.exit(os.system(" ".join(args)))
+        else:
+            os.execvp(self.executable_name, args)
+

Modified: django/trunk/django/db/backends/oracle/client.py
===================================================================
--- django/trunk/django/db/backends/oracle/client.py    2009-04-11 11:33:10 UTC 
(rev 10516)
+++ django/trunk/django/db/backends/oracle/client.py    2009-04-11 11:41:35 UTC 
(rev 10517)
@@ -1,10 +1,16 @@
-from django.db.backends import BaseDatabaseClient
 import os
+import sys
 
+from django.db.backends import BaseDatabaseClient
+
 class DatabaseClient(BaseDatabaseClient):
     executable_name = 'sqlplus'
 
     def runshell(self):
         conn_string = self.connection._connect_string()
         args = [self.executable_name, "-L", conn_string]
-        os.execvp(self.executable_name, args)
+        if os.name == 'nt':
+            sys.exit(os.system(" ".join(args)))
+        else:
+            os.execvp(self.executable_name, args)
+

Modified: django/trunk/django/db/backends/postgresql/client.py
===================================================================
--- django/trunk/django/db/backends/postgresql/client.py        2009-04-11 
11:33:10 UTC (rev 10516)
+++ django/trunk/django/db/backends/postgresql/client.py        2009-04-11 
11:41:35 UTC (rev 10517)
@@ -1,6 +1,8 @@
-from django.db.backends import BaseDatabaseClient
 import os
+import sys
 
+from django.db.backends import BaseDatabaseClient
+
 class DatabaseClient(BaseDatabaseClient):
     executable_name = 'psql'
 
@@ -14,4 +16,8 @@
         if settings_dict['DATABASE_PORT']:
             args.extend(["-p", str(settings_dict['DATABASE_PORT'])])
         args += [settings_dict['DATABASE_NAME']]
-        os.execvp(self.executable_name, args)
+        if os.name == 'nt':
+            sys.exit(os.system(" ".join(args)))
+        else:
+            os.execvp(self.executable_name, args)
+

Modified: django/trunk/django/db/backends/sqlite3/client.py
===================================================================
--- django/trunk/django/db/backends/sqlite3/client.py   2009-04-11 11:33:10 UTC 
(rev 10516)
+++ django/trunk/django/db/backends/sqlite3/client.py   2009-04-11 11:41:35 UTC 
(rev 10517)
@@ -1,9 +1,16 @@
-from django.db.backends import BaseDatabaseClient
 import os
+import sys
 
+from django.db.backends import BaseDatabaseClient
+
 class DatabaseClient(BaseDatabaseClient):
     executable_name = 'sqlite3'
 
     def runshell(self):
-        args = ['', self.connection.settings_dict['DATABASE_NAME']]
-        os.execvp(self.executable_name, args)
+        args = [self.executable_name,
+                self.connection.settings_dict['DATABASE_NAME']]
+        if os.name == 'nt':
+            sys.exit(os.system(" ".join(args)))
+        else:
+            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
-~----------~----~----~----~------~----~------~--~---

Reply via email to