Aunque la tabla "myapp_tablename" ya existe, el error deja de aparecer después de que hice ./manage.py migrate myapp --fake, DatabaseError no muestra esa columna: myapp_mymodel.added_field.
¡Tengo exactamente el mismo problema!
1. Primero verifique el número de migración que está causando esto. Supongamos que es: 0010.
2. Necesita:
./manage.py schemamigration myapp --add-field MyModel.added_field
./manage.py migrate myapp
Si falta más de un campo, debe repetirlo para cada campo.
3.Ahora aterrizas con un montón de nuevas migraciones, así que elimina sus archivos de myapp / migrations (0011 y más si necesita agregar múltiples campos).
4.Ejecute esto:
./manage.py migrate myapp 0010
Ahora intente ./manage.py migrate myapp
Si no falla, estás listo. Simplemente verifique si no falta ningún campo.
EDITAR:
Este problema también puede ocurrir cuando tiene una base de datos de producción para la cual instala South y la primera migración inicial creada en otro entorno duplica lo que ya tiene en su base de datos. La solución es mucho más fácil aquí:
Falsifica la primera migración:
./manage migrate myapp 0001 --fake
Rodar con el resto de las migraciones:
./manage migrate myapp