|
- """
- Dummy database backend for Django.
-
- Django uses this if the database ENGINE setting is empty (None or empty string).
-
- Each of these API functions, except connection.close(), raises
- ImproperlyConfigured.
- """
-
- from django.core.exceptions import ImproperlyConfigured
- from django.db.backends.base.base import BaseDatabaseWrapper
- from django.db.backends.base.client import BaseDatabaseClient
- from django.db.backends.base.creation import BaseDatabaseCreation
- from django.db.backends.base.introspection import BaseDatabaseIntrospection
- from django.db.backends.base.operations import BaseDatabaseOperations
- from django.db.backends.base.validation import BaseDatabaseValidation
- from django.db.backends.dummy.features import DummyDatabaseFeatures
-
-
- def complain(*args, **kwargs):
- raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
- "Please supply the ENGINE value. Check "
- "settings documentation for more details.")
-
-
- def ignore(*args, **kwargs):
- pass
-
-
- class DatabaseError(Exception):
- pass
-
-
- class IntegrityError(DatabaseError):
- pass
-
-
- class DatabaseOperations(BaseDatabaseOperations):
- quote_name = complain
-
-
- class DatabaseClient(BaseDatabaseClient):
- runshell = complain
-
-
- class DatabaseCreation(BaseDatabaseCreation):
- create_test_db = ignore
- destroy_test_db = ignore
-
-
- class DatabaseIntrospection(BaseDatabaseIntrospection):
- get_table_list = complain
- get_table_description = complain
- get_relations = complain
- get_indexes = complain
- get_key_columns = complain
-
-
- class DatabaseWrapper(BaseDatabaseWrapper):
- operators = {}
- # Override the base class implementations with null
- # implementations. Anything that tries to actually
- # do something raises complain; anything that tries
- # to rollback or undo something raises ignore.
- _cursor = complain
- ensure_connection = complain
- _commit = complain
- _rollback = ignore
- _close = ignore
- _savepoint = ignore
- _savepoint_commit = complain
- _savepoint_rollback = ignore
- _set_autocommit = complain
-
- def __init__(self, *args, **kwargs):
- super(DatabaseWrapper, self).__init__(*args, **kwargs)
-
- self.features = DummyDatabaseFeatures(self)
- self.ops = DatabaseOperations(self)
- self.client = DatabaseClient(self)
- self.creation = DatabaseCreation(self)
- self.introspection = DatabaseIntrospection(self)
- self.validation = BaseDatabaseValidation(self)
-
- def is_usable(self):
- return True
|