瀏覽代碼

Fixed #14921 -- Tweak changes made in r14861 for the Oracle backend so the test runner can actually create the test DB. Thanks Karen for the report.

In Oracle, the name of a DB as handled by Django hasn't a counterpart anyway. So use the 'production DB name' as it was done before.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14993 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Ramiro Morales 14 年之前
父節點
當前提交
c2657d8923
共有 2 個文件被更改,包括 11 次插入3 次删除
  1. 1 1
      django/db/backends/creation.py
  2. 10 2
      django/db/backends/oracle/creation.py

+ 1 - 1
django/db/backends/creation.py

@@ -374,7 +374,7 @@ class BaseDatabaseCreation(object):
 
     def _get_test_db_name(self):
         """
-        Internal implementation - returns the name of the test DB that wll be
+        Internal implementation - returns the name of the test DB that will be
         created. Only useful when called from create_test_db() and
         _create_test_db() and when no external munging is done with the 'NAME'
         or 'TEST_NAME' settings.

+ 10 - 2
django/db/backends/oracle/creation.py

@@ -43,7 +43,7 @@ class DatabaseCreation(BaseDatabaseCreation):
         super(DatabaseCreation, self).__init__(connection)
 
     def _create_test_db(self, verbosity=1, autoclobber=False):
-        TEST_NAME = self._get_test_db_name()
+        TEST_NAME = self._test_database_name()
         TEST_USER = self._test_database_user()
         TEST_PASSWD = self._test_database_passwd()
         TEST_TBLSPACE = self._test_database_tblspace()
@@ -201,7 +201,7 @@ class DatabaseCreation(BaseDatabaseCreation):
                 sys.stderr.write("Failed (%s)\n" % (err))
                 raise
 
-    def _get_test_db_name(self):
+    def _test_database_name(self):
         name = TEST_DATABASE_PREFIX + self.connection.settings_dict['NAME']
         try:
             if self.connection.settings_dict['TEST_NAME']:
@@ -251,3 +251,11 @@ class DatabaseCreation(BaseDatabaseCreation):
         except KeyError:
             pass
         return name
+
+    def _get_test_db_name(self):
+        """
+        We need to return the 'production' DB name to get the test DB creation
+        machinery to work. This isn't a great deal in this case because DB
+        names as handled by Django haven't real counterparts in Oracle.
+        """
+        return self.connection.settings_dict['NAME']