base.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. """
  2. Dummy database backend for Django.
  3. Django uses this if the database ENGINE setting is empty (None or empty string).
  4. Each of these API functions, except connection.close(), raises
  5. ImproperlyConfigured.
  6. """
  7. from django.core.exceptions import ImproperlyConfigured
  8. from django.db.backends import (BaseDatabaseOperations, BaseDatabaseClient,
  9. BaseDatabaseIntrospection, BaseDatabaseWrapper, BaseDatabaseFeatures,
  10. BaseDatabaseValidation)
  11. from django.db.backends.creation import BaseDatabaseCreation
  12. def complain(*args, **kwargs):
  13. raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
  14. "Please supply the ENGINE value. Check "
  15. "settings documentation for more details.")
  16. def ignore(*args, **kwargs):
  17. pass
  18. class DatabaseError(Exception):
  19. pass
  20. class IntegrityError(DatabaseError):
  21. pass
  22. class DatabaseOperations(BaseDatabaseOperations):
  23. quote_name = complain
  24. class DatabaseClient(BaseDatabaseClient):
  25. runshell = complain
  26. class DatabaseCreation(BaseDatabaseCreation):
  27. create_test_db = ignore
  28. destroy_test_db = ignore
  29. class DatabaseIntrospection(BaseDatabaseIntrospection):
  30. get_table_list = complain
  31. get_table_description = complain
  32. get_relations = complain
  33. get_indexes = complain
  34. get_key_columns = complain
  35. class DatabaseWrapper(BaseDatabaseWrapper):
  36. operators = {}
  37. # Override the base class implementations with null
  38. # implementations. Anything that tries to actually
  39. # do something raises complain; anything that tries
  40. # to rollback or undo something raises ignore.
  41. _cursor = complain
  42. _commit = complain
  43. _rollback = ignore
  44. _close = ignore
  45. _savepoint = ignore
  46. _savepoint_commit = complain
  47. _savepoint_rollback = ignore
  48. _set_autocommit = complain
  49. set_dirty = complain
  50. set_clean = complain
  51. def __init__(self, *args, **kwargs):
  52. super(DatabaseWrapper, self).__init__(*args, **kwargs)
  53. self.features = BaseDatabaseFeatures(self)
  54. self.ops = DatabaseOperations(self)
  55. self.client = DatabaseClient(self)
  56. self.creation = DatabaseCreation(self)
  57. self.introspection = DatabaseIntrospection(self)
  58. self.validation = BaseDatabaseValidation(self)
  59. def is_usable(self):
  60. return True