Erreur de migration vers le sud - une relation existe déjà
Arrière-plan:
Après l'ajout de djangoratings à mon projet, j'ai essayé de courir
django-admin.py schemamigration djangoratings --initial
--settings=myapp.settings.local
qui a abouti à une inconnue erreur de commande pour schemamigration.
J'ai essayé de résoudre cette erreur en ajoutant mon répertoire de projet pour le PYTHONPATH (je suis en utilisant virtualenv et virtualenvwrapper).
Cette résolu l'inconnu erreur de commande pour schemamigration, mais je pense que j'ai spécifié un répertoire au-dessus de mon répertoire de projet pour le PYTHONPATH et lors de la migration initiale a été exécuté pour djangoratings, il s'est plaint de quelque chose à faire avec whoosh (que j'utilise dans mon projet). J'ai changé le PYTHONPATH répertoire et essayé de courir
django-admin.py schemamigration djangoratings --initial
--settings=myapp.settings.local
de nouveau. Ensuite, j'ai couru le migrer de commande. C'est quand j'ai reçu le message d'erreur:
django.db.utils.DatabaseError: relation "djangoratings_vote" already exists
J'ai essayé de migrer tout le chemin du retour à l'aide de:
django-admin.py migrate djangoratings zero --settings=myapp.settings.local
Running migrations for djangoratings:
- Migrating backwards to zero state.
< djangoratings:0006_add_cookies
< djangoratings:0005_add_exclusions
< djangoratings:0004_rethink_recommendations
< djangoratings:0003_add_correlations
< djangoratings:0002_add_mean_and_stddev
< djangoratings:0001_initial
puis de l'exécuter --initial de nouveau, mais la même erreur s'est produite après l'exécution de l'migrer de commande.
J'ai regardé la liste des tables dans ma base de données et de ne pas le voir tout de djangoratings_vote.
Mon migrations de liste pour djangoratings est comme suit:
0001_initial.py 0006_add_cookies.py
0001_initial.pyc 0006_add_cookies.pyc
0002_add_mean_and_stddev.py 0007_initial.py
0002_add_mean_and_stddev.pyc 0007_initial.pyc
0003_add_correlations.py 0008_initial.py
0003_add_correlations.pyc 0008_initial.pyc
0004_rethink_recommendations.py 0009_initial.py
0004_rethink_recommendations.pyc 0009_initial.pyc
0005_add_exclusions.py __init__.py
0005_add_exclusions.pyc __init__.pyc
Comment puis-je résoudre la relation "djangoratings_vote" existe déjà erreur? En utilisant de préférence du Sud?
source d'informationauteur Derek
Vous devez vous connecter pour publier un commentaire.
Il me semble que si le Sud est de la synchronisation avec votre base de données (ce qui peut arriver si le sud a commencé à créer les tables, mais ne parvient pas sans être en mesure de terminer l'arrière de la migration). Je recommande restauration manuelle de la base de données et du sud comme suit (faites une sauvegarde de votre base de données de la première en cas d'erreur):
Une fois que vous avez fait cela, vous devriez avoir une propre base de données, et le sud de l'histoire. À ce stade, ré exécuter:
Qui va générer un seul fichier de migration. Alors:
En supposant que vous n'obtenez pas les erreurs que vous avez eu la première fois, ce qui devrait constituer la base de données de sorte que vous êtes prêt à utiliser django cotes.
il existe une meilleure façon de le résoudre:
et puis:
C'est dans une extension de @stef_huayue de réponse si ce n'est pas tout à fait comme prévu.
Trouver dont la migration a échoué. Le coressponding migration_file.py sera généralement où la
migrations.AddField
opération se passe. Ensuite, exécutez:python manage.py migrate app_name --fake [migration_file]
sans l'extension de fichier. Suivi de:
python manage.py migrate app_name