From bbc3a955573c8e53dcc6d314ed1bd364a49d31b5 Mon Sep 17 00:00:00 2001 From: Ian Kelly Date: Sat, 1 Dec 2007 19:23:49 +0000 Subject: [PATCH] Fixed #6007: Added DEFAULT_TABLESPACE and DEFAULT_INDEX_TABLESPACE options to global_settings.py git-svn-id: http://code.djangoproject.com/svn/django/trunk@6801 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/global_settings.py | 4 ++++ django/db/models/fields/__init__.py | 2 +- django/db/models/options.py | 2 +- docs/databases.txt | 6 ++++++ docs/model-api.txt | 5 +++-- docs/settings.txt | 16 ++++++++++++++++ 6 files changed, 31 insertions(+), 4 deletions(-) diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 2853d6c618..837158a0a4 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -253,6 +253,10 @@ TRANSACTIONS_MANAGED = False from django import get_version URL_VALIDATOR_USER_AGENT = "Django/%s (http://www.djangoproject.com)" % get_version() +# The tablespaces to use for each model when not specified otherwise. +DEFAULT_TABLESPACE = '' +DEFAULT_INDEX_TABLESPACE = '' + ############## # MIDDLEWARE # ############## diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index ddf695816e..7eb57d96c9 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -104,7 +104,7 @@ class Field(object): self.radio_admin = radio_admin self.help_text = help_text self.db_column = db_column - self.db_tablespace = db_tablespace + self.db_tablespace = db_tablespace or settings.DEFAULT_INDEX_TABLESPACE # Set db_index to True if the field has a relationship and doesn't explicitly set db_index. self.db_index = db_index diff --git a/django/db/models/options.py b/django/db/models/options.py index 788d1c80de..23d9b04fe9 100644 --- a/django/db/models/options.py +++ b/django/db/models/options.py @@ -29,7 +29,7 @@ class Options(object): self.object_name, self.app_label = None, None self.get_latest_by = None self.order_with_respect_to = None - self.db_tablespace = None + self.db_tablespace = settings.DEFAULT_TABLESPACE self.admin = None self.meta = meta self.pk = None diff --git a/docs/databases.txt b/docs/databases.txt index d4853f75f8..5ee6aa4304 100644 --- a/docs/databases.txt +++ b/docs/databases.txt @@ -258,6 +258,12 @@ many-to-many table would be stored in the ``indexes`` tablespace. The ``data`` field would also generate an index, but no tablespace for it is specified, so it would be stored in the model tablespace ``tables`` by default. +The settings.py file supports two additional options to specify +default values for the db_tablespace options. This is useful for +setting a tablespace for the Django internal apps and other +contributed applications. These options are ``DEFAULT_TABLESPACE`` +and ``DEFAULT_INDEX_TABLESPACE``. + Django does not create the tablespaces for you. Please refer to `Oracle's documentation`_ for details on creating and managing tablespaces. diff --git a/docs/model-api.txt b/docs/model-api.txt index f39b711e84..590c601d75 100644 --- a/docs/model-api.txt +++ b/docs/model-api.txt @@ -618,8 +618,9 @@ statement for this field. **New in Django development version** The name of the database tablespace to use for this field's index, if -indeed this field is indexed. The default is the ``db_tablespace`` of -the model, if any. If the backend doesn't support tablespaces, this +indeed this field is indexed. The default is the project's +``DEFAULT_INDEX_TABLESPACE`` setting, if set, or the ``db_tablespace`` +of the model, if any. If the backend doesn't support tablespaces, this option is ignored. ``default`` diff --git a/docs/settings.txt b/docs/settings.txt index 45ba86e608..bb055160a5 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -404,6 +404,22 @@ Default: ``'webmaster@localhost'`` Default e-mail address to use for various automated correspondence from the site manager(s). +DEFAULT_TABLESPACE +------------------ + +Default: ``''`` (Empty string) + +Default tablespace to use for models that do not specify one, if the +backend supports it. + +DEFAULT_INDEX_TABLESPACE +------------------------ + +Default: ``''`` (Empty string) + +Default tablespace to use for indexes on fields that do not specify +one, if the backend supports it. + DISALLOWED_USER_AGENTS ----------------------