Django incorrectamente esperando la columna de identificación

Estoy trabajando con una base de datos SQL existente en Django. Estas tablas, por alguna razón, nunca recibieron claves primarias, así que solo las estoy revisando y asignando. En uno de estos modelos, cambié un índice único existente a un índice primario usando primary_key = True . Luego corrí ./manage.py makemigrations (app_name); ./manage.py migrate ./manage.py makemigrations (app_name); ./manage.py migrate . Encontré este error: (1091, “No se puede DROP ‘id’; compruebe que la columna / clave existe”) . Parece que Django asumió que había un campo de identificación para el modelo cuando no lo había, porque pude usar phpMyAdmin para crear un campo de identificación, y cuando volví a ejecutar la migración, tuvo éxito. Si bien pude solucionar mi problema, dudo que esta sea la mejor manera de hacerlo. ¿Cuál es la forma correcta de lidiar con este problema?

Puede simular una migración solo incluyendo la eliminación del campo “id” utilizando la opción –fake al migrar, por lo que django cree que había eliminado el campo id cuando en realidad nunca existió.