summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2018-11-06 22:13:57 +0100
committerTim Graham <timograham@gmail.com>2018-11-13 18:22:41 -0500
commitff8020ed49571b0fece67d10d7398d5f57cbaa74 (patch)
treeac0afbd8eb91db6cb91c442e1ae35f81a25daf2b /django
parent9886dffdf45873a5ce427eded9277f37d4a30ef1 (diff)
Fixed #29788 -- Added support for Oracle Managed File (OMF) tablespaces.
Diffstat (limited to 'django')
-rw-r--r--django/db/backends/oracle/creation.py39
1 files changed, 29 insertions, 10 deletions
diff --git a/django/db/backends/oracle/creation.py b/django/db/backends/oracle/creation.py
index 109b97b3f2..98ea186dcb 100644
--- a/django/db/backends/oracle/creation.py
+++ b/django/db/backends/oracle/creation.py
@@ -187,16 +187,32 @@ class DatabaseCreation(BaseDatabaseCreation):
def _execute_test_db_creation(self, cursor, parameters, verbosity, keepdb=False):
if verbosity >= 2:
self.log('_create_test_db(): dbname = %s' % parameters['user'])
- statements = [
- """CREATE TABLESPACE %(tblspace)s
- DATAFILE '%(datafile)s' SIZE %(size)s
- REUSE AUTOEXTEND ON NEXT %(extsize)s MAXSIZE %(maxsize)s
- """,
- """CREATE TEMPORARY TABLESPACE %(tblspace_temp)s
- TEMPFILE '%(datafile_tmp)s' SIZE %(size_tmp)s
- REUSE AUTOEXTEND ON NEXT %(extsize_tmp)s MAXSIZE %(maxsize_tmp)s
- """,
- ]
+ if self._test_database_oracle_managed_files():
+ statements = [
+ """
+ CREATE TABLESPACE %(tblspace)s
+ DATAFILE SIZE %(size)s
+ AUTOEXTEND ON NEXT %(extsize)s MAXSIZE %(maxsize)s
+ """,
+ """
+ CREATE TEMPORARY TABLESPACE %(tblspace_temp)s
+ TEMPFILE SIZE %(size_tmp)s
+ AUTOEXTEND ON NEXT %(extsize_tmp)s MAXSIZE %(maxsize_tmp)s
+ """,
+ ]
+ else:
+ statements = [
+ """
+ CREATE TABLESPACE %(tblspace)s
+ DATAFILE '%(datafile)s' SIZE %(size)s REUSE
+ AUTOEXTEND ON NEXT %(extsize)s MAXSIZE %(maxsize)s
+ """,
+ """
+ CREATE TEMPORARY TABLESPACE %(tblspace_temp)s
+ TEMPFILE '%(datafile_tmp)s' SIZE %(size_tmp)s REUSE
+ AUTOEXTEND ON NEXT %(extsize_tmp)s MAXSIZE %(maxsize_tmp)s
+ """,
+ ]
# Ignore "tablespace already exists" error when keepdb is on.
acceptable_ora_err = 'ORA-01543' if keepdb else None
self._execute_allow_fail_statements(cursor, statements, parameters, verbosity, acceptable_ora_err)
@@ -359,6 +375,9 @@ class DatabaseCreation(BaseDatabaseCreation):
def _test_database_tblspace_tmp_extsize(self):
return self._test_settings_get('DATAFILE_TMP_EXTSIZE', default='25M')
+ def _test_database_oracle_managed_files(self):
+ return self._test_settings_get('ORACLE_MANAGED_FILES', default=False)
+
def _get_test_db_name(self):
"""
Return the 'production' DB name to get the test DB creation machinery