summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2009-04-11 11:41:35 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2009-04-11 11:41:35 +0000
commitd18f75af447bc18b062564ab163943c16d79effc (patch)
treef7086d0df781be0cb86e51dcb6fd09f85f66b597
parent0d2cf7bdd6ee7b404f6e0f8eebfa9e8979ba7671 (diff)
downloaddjango-d18f75af447bc18b062564ab163943c16d79effc.tar.gz
Fixed #10357 -- Fixed the "dbshell" command for Windows users.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10517 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/db/backends/mysql/client.py14
-rw-r--r--django/db/backends/oracle/client.py10
-rw-r--r--django/db/backends/postgresql/client.py10
-rw-r--r--django/db/backends/sqlite3/client.py13
4 files changed, 36 insertions, 11 deletions
diff --git a/django/db/backends/mysql/client.py b/django/db/backends/mysql/client.py
index 129f86a951..3743225957 100644
--- a/django/db/backends/mysql/client.py
+++ b/django/db/backends/mysql/client.py
@@ -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 @@ class DatabaseClient(BaseDatabaseClient):
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 @@ class DatabaseClient(BaseDatabaseClient):
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)
+
diff --git a/django/db/backends/oracle/client.py b/django/db/backends/oracle/client.py
index 84193eaedc..ccc64ebffc 100644
--- a/django/db/backends/oracle/client.py
+++ b/django/db/backends/oracle/client.py
@@ -1,5 +1,7 @@
-from django.db.backends import BaseDatabaseClient
import os
+import sys
+
+from django.db.backends import BaseDatabaseClient
class DatabaseClient(BaseDatabaseClient):
executable_name = 'sqlplus'
@@ -7,4 +9,8 @@ class DatabaseClient(BaseDatabaseClient):
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)
+
diff --git a/django/db/backends/postgresql/client.py b/django/db/backends/postgresql/client.py
index 695017130f..13273b9fb5 100644
--- a/django/db/backends/postgresql/client.py
+++ b/django/db/backends/postgresql/client.py
@@ -1,5 +1,7 @@
-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 @@ class DatabaseClient(BaseDatabaseClient):
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)
+
diff --git a/django/db/backends/sqlite3/client.py b/django/db/backends/sqlite3/client.py
index 0b65444d74..8836b09899 100644
--- a/django/db/backends/sqlite3/client.py
+++ b/django/db/backends/sqlite3/client.py
@@ -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)
+