2013-05-07 5 views
2

J'ai synchroniser mon application et db avec sud.1054 colonne inconnue django après la migration du sud

La base de données est ancienne et je souhaite ajouter de nouvelles colonnes.

1: python manage.py convert_to_south myappName 

2: python manage.py schemamigration myappName --auto 

3: python manage.py migrate myappName --fake (did use for a table, but not the 
    table that is the problem) 

4: python manage.py migrate myappName 

Tout semble bien, l'application est synchronisée tout.

Mais je reçois encore 1054 ....

Toutes les idées?

+0

Pourquoi exécutez-vous une fausse migration? Êtes-vous conscient de ce que cela signifie? – melwil

+0

@melwil, parce qu'il a dit qu'il a déjà une base de données synchronisée pour l'application en question. –

+0

Oui, comme l'écrivait @Hedde, il y avait une vieille table qui disait que les sorties d'alreday existaient déjà. – kingRauk

Répondre

2

C'est parce que vous créez une migration initiale après avoir ajouté une colonne à votre modèle, mais avant qu'elle n'apparaisse dans la base de données.

Le workflow correct doit être la suivante:

1) Avoir un travail application qui ne django jetez pas la colonne inconnue. (Commenter les nouvelles colonnes)

2) Faites votre étape 1-4

3) Ensuite, vous devez ajouter les colonnes que vous voulez et exécutez votre étape 2 (schemamigration myappName --auto) une fois de plus.

4) Ensuite, vous devez exécuter la commande migrate.

Cest tout

+0

Heureka! Finaly! Ça marche. Votre réponse était géniale. A dû enlever et ajouter quelques colonnes, mais finalement cela a fonctionné. Merci! – kingRauk

+1

J'ai suivi cela exactement et a reçu une erreur 1054 après avoir téléchargé la fonction models avec de nouveaux attributs, puis exécuté schemamigration myappName --auto – IdeoREX

+0

yep même ici. Ayant toujours un 1054 après avoir décommenté mon domaine pendant que je cours la schemamigration :( – aRkadeFR

Questions connexes