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):