diff --git a/django/core/db/backends/mysql.py b/django/core/db/backends/mysql.py index c4b2e870ec..d1a3e7ee12 100644 --- a/django/core/db/backends/mysql.py +++ b/django/core/db/backends/mysql.py @@ -139,13 +139,13 @@ def get_indexes(cursor, table_name): """ Returns a dictionary of fieldname -> infodict for the given table, where each infodict is in the format: - {'keyname': 'name of key', + {'primary_key': boolean representing whether it's the primary key, 'unique': boolean representing whether it's a unique index} """ cursor.execute("SHOW INDEX FROM %s" % DatabaseWrapper().quote_name(table_name)) indexes = {} for row in cursor.fetchall(): - indexes[row[4]] = {'keyname': row[2], 'unique': not bool(row[1])} + indexes[row[4]] = {'primary_key': (row[2] == 'PRIMARY'), 'unique': not bool(row[1])} return indexes OPERATOR_MAPPING = { diff --git a/django/core/management.py b/django/core/management.py index 23ee81d0ad..de1153af80 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -636,7 +636,7 @@ def inspectdb(db_name): # Add primary_key and unique, if necessary. column_name = extra_params.get('db_column', att_name) if column_name in indexes: - if indexes[column_name]['keyname'] == 'PRIMARY': + if indexes[column_name]['primary_key']: extra_params['primary_key'] = True elif indexes[column_name]['unique']: extra_params['unique'] = True