summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/backends/base/introspection.py11
-rw-r--r--tests/backends/base/test_introspection.py5
2 files changed, 16 insertions, 0 deletions
diff --git a/django/db/backends/base/introspection.py b/django/db/backends/base/introspection.py
index d661e1fc0d..10c04abece 100644
--- a/django/db/backends/base/introspection.py
+++ b/django/db/backends/base/introspection.py
@@ -140,6 +140,17 @@ class BaseDatabaseIntrospection:
"""
raise NotImplementedError('subclasses of BaseDatabaseIntrospection may require a get_sequences() method')
+ def get_relations(self, cursor, table_name):
+ """
+ Return a dictionary of
+ {field_name: (field_name_other_table, other_table)} representing all
+ relationships to the given table.
+ """
+ raise NotImplementedError(
+ 'subclasses of BaseDatabaseIntrospection may require a '
+ 'get_relations() method.'
+ )
+
def get_key_columns(self, cursor, table_name):
"""
Backends can override this to return a list of:
diff --git a/tests/backends/base/test_introspection.py b/tests/backends/base/test_introspection.py
index 5ad9c4f5e0..ac1785ec92 100644
--- a/tests/backends/base/test_introspection.py
+++ b/tests/backends/base/test_introspection.py
@@ -26,6 +26,11 @@ class SimpleDatabaseIntrospectionTests(SimpleTestCase):
with self.assertRaisesMessage(NotImplementedError, msg):
self.introspection.get_sequences(None, None)
+ def test_get_relations(self):
+ msg = self.may_require_msg % 'get_relations'
+ with self.assertRaisesMessage(NotImplementedError, msg):
+ self.introspection.get_relations(None, None)
+
def test_get_key_columns(self):
msg = self.may_require_msg % 'get_key_columns'
with self.assertRaisesMessage(NotImplementedError, msg):