Loading django/db/backends/__init__.py +14 −3 Original line number Diff line number Diff line Loading @@ -1328,9 +1328,20 @@ class BaseDatabaseIntrospection(object): def get_constraints(self, cursor, table_name): """ Returns {'cnname': {'columns': set(columns), 'primary_key': bool, 'unique': bool}} Both single- and multi-column constraints are introspected. Retrieves any constraints or keys (unique, pk, fk, check, index) across one or more columns. Returns a dict mapping constraint names to their attributes, where attributes is a dict with keys: * columns: List of columns this covers * primary_key: True if primary key, False otherwise * unique: True if this is a unique constraint, False otherwise * foreign_key: (table, column) of target, or None * check: True if check constraint, False otherwise * index: True if index, False otherwise. Some backends may return special constraint names that don't exist if they don't name constraints of a certain type (e.g. SQLite) """ raise NotImplementedError Loading django/db/backends/postgresql_psycopg2/introspection.py +2 −2 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ class DatabaseIntrospection(BaseDatabaseIntrospection): "columns": [], "primary_key": False, "unique": False, "foreign_key": False, "foreign_key": None, "check": True, "index": False, } Loading Loading @@ -197,7 +197,7 @@ class DatabaseIntrospection(BaseDatabaseIntrospection): "columns": list(columns), "primary_key": primary, "unique": unique, "foreign_key": False, "foreign_key": None, "check": False, "index": True, } Loading Loading
django/db/backends/__init__.py +14 −3 Original line number Diff line number Diff line Loading @@ -1328,9 +1328,20 @@ class BaseDatabaseIntrospection(object): def get_constraints(self, cursor, table_name): """ Returns {'cnname': {'columns': set(columns), 'primary_key': bool, 'unique': bool}} Both single- and multi-column constraints are introspected. Retrieves any constraints or keys (unique, pk, fk, check, index) across one or more columns. Returns a dict mapping constraint names to their attributes, where attributes is a dict with keys: * columns: List of columns this covers * primary_key: True if primary key, False otherwise * unique: True if this is a unique constraint, False otherwise * foreign_key: (table, column) of target, or None * check: True if check constraint, False otherwise * index: True if index, False otherwise. Some backends may return special constraint names that don't exist if they don't name constraints of a certain type (e.g. SQLite) """ raise NotImplementedError Loading
django/db/backends/postgresql_psycopg2/introspection.py +2 −2 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ class DatabaseIntrospection(BaseDatabaseIntrospection): "columns": [], "primary_key": False, "unique": False, "foreign_key": False, "foreign_key": None, "check": True, "index": False, } Loading Loading @@ -197,7 +197,7 @@ class DatabaseIntrospection(BaseDatabaseIntrospection): "columns": list(columns), "primary_key": primary, "unique": unique, "foreign_key": False, "foreign_key": None, "check": False, "index": True, } Loading