Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

Update get_constraints with better comments

  • Loading branch information...
1 parent d5a7a3d commit 77028194415cb03b1ff2a85a86d806a0366bccff @andrewgodwin andrewgodwin committed
17 django/db/backends/
@@ -1328,9 +1328,20 @@ def get_indexes(self, cursor, table_name):
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
4 django/db/backends/postgresql_psycopg2/
@@ -169,7 +169,7 @@ def get_constraints(self, cursor, table_name):
"columns": [],
"primary_key": False,
"unique": False,
- "foreign_key": False,
+ "foreign_key": None,
"check": True,
"index": False,
@@ -197,7 +197,7 @@ def get_constraints(self, cursor, table_name):
"columns": list(columns),
"primary_key": primary,
"unique": unique,
- "foreign_key": False,
+ "foreign_key": None,
"check": False,
"index": True,

0 comments on commit 7702819

Please sign in to comment.
Something went wrong with that request. Please try again.