Bien que la table "myapp_tablename" existe déjà, l'erreur cesse de se produire après que j'ai fait ./manage.py migrate myapp --fake, le DatabaseError indique no such column : myapp_mymodel.added_field.
J'ai exactement le même problème !
1.Premièrement vérifier le numéro de migration ce qui cause ce problème. Supposons que c'est ça : 0010.
2. vous devez :
./manage.py schemamigration myapp --add-field MyModel.added_field
./manage.py migrate myapp
s'il manque plus d'un champ, vous devez le répéter pour chaque champ.
3. maintenant vous atterrissez avec un tas de nouvelles migrations donc supprimer leurs fichiers de myapp/migrations (0011 et plus si vous avez besoin d'ajouter plusieurs champs).
4. Exécutez ceci :
./manage.py migrate myapp 0010
Maintenant essayez ./manage.py migrate myapp
Si ça ne rate pas, vous êtes prêt. Vérifiez simplement qu'il ne manque aucun champ.
EDIT :
Ce problème peut également se produire lorsque vous avez une base de données de production pour laquelle vous installez South et que la première migration initiale créée dans un autre environnement duplique ce que vous avez déjà dans votre base de données. La solution est ici beaucoup plus simple :
-
Faux la première migration :
./manage migrate myapp 0001 --fake
-
Roulez avec le reste des migrations :
./manage migrate myapp