django.db.les migrations.des exceptions.InconsistentMigrationHistory
Quand je lance
python manage.py migrate
sur mon projet django, j'obtient l'erreur suivante
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/home/hari/project/env/local/lib/python2.7/site- packages/django/core/management/__init__.py", line 363, in execute_from_command_line
utility.execute()
File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 355, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute
output = self.handle(*args, **options)
File "/home/hari/project/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 86, in handle
executor.loader.check_consistent_history(connection)
File "/home/hari/project/env/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 298, in check_consistent_history
connection.alias,
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency account.0001_initial on database 'default'.
J'ai un modèle utilisateur comme ci-dessous
class User(AbstractUser):
place = models.CharField(max_length=64, null=True, blank=True)
address = models.CharField(max_length=128, null=True, blank=True)
Alors, comment puis-je résoudre ce problème?
tout d'abord supprimer toutes les tables de la base de données, supprimer tous les fichiers de migrations dossier, à l'exception init.py exécutez ensuite migrer
comment supprimer toutes les tables?
ce db utilisez-vous?
yah. je l'ai supprimé et maintenant, il est de travail.
ok poster bro
comment supprimer toutes les tables?
ce db utilisez-vous?
yah. je l'ai supprimé et maintenant, il est de travail.
ok poster bro
OriginalL'auteur Hari Krishnan | 2017-06-20
Vous devez vous connecter pour publier un commentaire.
Votre django_migrations table dans votre base de données est la cause de l'incohérence et la suppression de tous les migrations juste de chemin d'accès local ne fonctionne pas.
Vous tronquer la django_migrations table de votre base de données et puis essayez d'appliquer les migrations de nouveau. Il devrait fonctionner, mais si il ne le fait pas exécuter makemigrations de nouveau et ensuite migrer.
Remarque: n'oubliez pas de faire une sauvegarde de vos données.
OriginalL'auteur Arpit Solanki
Puisque vous êtes en utilisant une mesure de modèle d'Utilisateur, votre premier commentaire
dans votre Installed_Apps paramètres. Ensuite, exécutez
Quand fait décommentez
OriginalL'auteur jackson
Permet de commencer par aborder la question avec la plupart des réponses sur cette page:
Vous n'avez jamais ont pour déposer votre base de données si vous utilisez Django de migration du système correctement et vous devrait ne jamais supprimer les migrations, une fois qu'ils sont partie prenante
Maintenant pour vous la meilleure solution dépend d'un certain nombre de facteurs, dont les suivants degré d'expérience avec Django, quel est le niveau de compréhension que vous avez de la migration du système, et la valeur de votre base de données.
En bref, il y a deux façons de répondre à des migrations d'erreur.
Prendre la nucléaire option. Avertissement: ce n'est qu'une option est que vous travaillez seul. Si d'autres personnes dépendent de l'existant migrations vous ne peut pas simplement les supprimer.
python3 -m manage makemigrations
. Ceci devrait permettre d'éliminer tous les problèmes que vous avez eu avec dépendances ou des incohérences dans votre migrations.InconsistentMigrationHistory
se plaint].python3 -m manage migrate
Déterminer la cause de l'erreur et de le résoudre, parce que (en parlant de l'expérience) la cause est presque certainement quelque chose de stupide vous fait. (Généralement le résultat de ne pas comprendre comment utiliser le système de migration correctement). En fonction de l'erreur est que j'ai causé il y a trois catégories.
makemigrations --merge
pouvez résoudre ce problème, sinon quelqu'un va avoir à faire reculer leurs migrations vers le point d'embranchement afin de résoudre ce problème.InconsistentMigrationHistory
question à la personne souffre de, et celles que j'ai souffert quand je suis arrivé à cette page]. Pour gérer ce que quelqu'un a soit manuellement, gâché avec de l'django_migrations
table ou supprimé une migration après il a été appliqué. Pour résoudre cela, vous allez avoir à travailler sur la façon de l'incohérence et résoudre manuellement. Si votre schéma de base de données est correct, et il est juste de votre histoire de la migration qui est mal, vous pouvez modifier manuellement ledjango_migrations
table pour résoudre ce problème. Si votre schéma de base de données est incorrecte, alors vous aurez également à modifier manuellement que pour la mettre en conformité avec ce qu'elle devrait être.Basé sur la description du problème et la réponse que vous avez sélectionné, je vais supposer que vous travaillez seul, sont de nouveau à Django, et ne se soucient pas de vos données. Si l'option nucléaire peut être bon pour vous.
Si vous n'êtes pas dans cette situation et le texte ci-dessus ressemble à du charabia, alors je suggère de poser la Django de l'Utilisateur de la Liste de Diffusion pour obtenir de l'aide. Il y a de très utile, les gens là-bas qui peuvent aider à vous guider à travers la résolution du spécifique de la pagaille que vous êtes dans.
Avez la foi, vous pouvez résoudre cette erreur sans nucléaire!
0001_initial
la migration, qui dépendait de l'application de la00XX_auto
la migration avait été en quelque sorte appliqué avant qu'elle dépendance!Aussi horrible que tout ce que les sons qu'il était facile à résoudre. Ma base de données n'avez le schéma correct, tout ce que je avais à faire était d'ajouter manuellement
'A' '00XX_auto'
à ladjango_migrations
table donc mon histoire reflète les changements dans le fait que la migration avait été appliquée. Compliqué, mais pas difficile une fois que vous travaillez sur le problème.OriginalL'auteur Airs
Ici comment résoudre ce problème correctement.
Suivez ces étapes dans votre migrations dossier à l'intérieur du projet:
python manage.py makemigrations
python manage.py migrer
Le tour est joué.
OriginalL'auteur Dr. Younes Henni
Problème
On peut donc migrer la base de données sans admin(admin.0001_initial) tout d'abord.
Après sa dépendance migré, exécuter des commandes à migrer
admin.0001_initial
.Solution
OriginalL'auteur kun shi
Si vous définissez AUTH_USER_MODEL dans settings.py comme ceci:
vous devriez mettre cette ligne en commentaire avant de lancer makemigration et migrer commandes. Ensuite, vous pouvez décommenter cette ligne de nouveau.
OriginalL'auteur Erfan Tahriri
il suffit de supprimer le fichier sqlite ou exécuter rincer le databse 'python manage.py flush'
et puis exécutez makemigrations et migrer les commandes respectivement.
OriginalL'auteur Arun
lorsque vous créez un nouveau projet Django et exécuter
Le Django va créer 10 tables par défaut, y compris un auth_user de table et de deux start avec auth_user.
lorsque vous souhaitez créer un utilisateur personnalisée modèle hériter de AbstractUser, vous rencontrerez ce problème avec le message d'erreur comme suit:
- Je résoudre ce problème en laissant tomber toute ma base de données, et en créer un nouveau. Et cela remplace les trois tables que j'ai mentionnés.
OriginalL'auteur hcf1425
D'abord supprimer tous les migrations et la db.sqlite3 fichiers et suivez ces étapes:
Supprimer l'ancien fichier de migration et enfin.
OriginalL'auteur shivam singhal
Si cette exception se révéler à lui-même pendant que vous essayez de créer votre propre modèle d'Utilisateur au lieu de la norme à suivre que l'instruction
J'ai trouvé mon problème à résoudre par suivre que les instructions étape par étape:
OriginalL'auteur N.C.
lorsque vous créez un nouveau projet et sans apps, vous courez le
le Django va créer 10 tables par défaut.
Si vous souhaitez créer un modèle utilisateur qui héritent de
AbstractUser
après, vous rencontrez ce problème, suivez message:enfin,
Je baisse mon ensemble de bases de données et exécuter
OriginalL'auteur hcf1425