Maison >base de données >tutoriel mysql >Comment corriger l'erreur « La table n'existe pas » dans Django ?

Comment corriger l'erreur « La table n'existe pas » dans Django ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-14 22:38:02950parcourir

How to Fix the

Django : résolution de l'erreur « La table n'existe pas »

Cette erreur se produit lorsque Django tente d'effectuer des opérations de base de données sur une table qui ne n'existe plus, généralement en raison d'une suppression manuelle ou d'une modification des modèles de l'application.

Problème Explication :

Après avoir supprimé la table liée au modèle, la commande syncdb tente de créer à nouveau la table. Cependant, comme le modèle de la table est toujours présent dans models.py, Django s'attend à ce que la table soit là mais la trouve manquante. Cela entraîne l'erreur « La table n'existe pas ».

Étapes de la solution :

  1. Supprimez les tables (Vous avez déjà fait ceci).
  2. Commentez le modèle dans models.py.
  3. Exécuter les migrations (Pour les versions de Django >= 1.7) :

    • python manage.py makemigrations
    • python manage.py migrer --fake

    OU

    Exécuter la migration du schéma (Pour les versions de Django < 1.7) :

    • python manage.py schemamigration someapp --auto
    • python manage.py migrate someapp --fake
  4. Commentaire dans le modèle dans models.py.
  5. Réexécuter les migrations ou le schéma migration (cette fois sans --fake).

Exemple pour les versions Django >= 1.7 :

# Comment out the model in models.py
# class feed(models.Model):
    # ...

# Execute migrations
python manage.py makemigrations
python manage.py migrate

# Comment in the model in models.py
# class feed(models.Model):
    # ...

# Re-execute migrations
python manage.py migrate

Exemple pour les versions Django < 1.7 :

# Comment out the model in models.py
# class feed(models.Model):
    # ...

# Execute schema migration
python manage.py schemamigration someapp --auto
python manage.py migrate someapp --fake

# Comment in the model in models.py
# class feed(models.Model):
    # ...

# Re-execute schema migration
python manage.py migrate someapp

En suivant ces étapes, vous pouvez recréer les tables manquantes et résoudre l'erreur « La table n'existe pas ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn