Maison  >  Article  >  base de données  >  Django : Comment résoudre l'erreur « La table n'existe pas » lors de la modification de modèles ?

Django : Comment résoudre l'erreur « La table n'existe pas » lors de la modification de modèles ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-09 11:55:02139parcourir

Django: How to Resolve the

Django : résolution du problème « La table n'existe pas »

Lors de la modification de modèles ou de la suppression de tables dans Django, l'erreur « La table n'existe pas » peut être frustrant. Ce problème survient lorsque Django tente d'effectuer des opérations sur une table qui a été supprimée ou qui n'existe pas dans la base de données.

Pour résoudre ce problème, une solution étape par étape implique les éléments suivants :

  1. Supprimez les tables concernées : Commencez par confirmer que la table à l'origine de l'erreur a été supprimée de la base de données.
  2. Commentez le modèle : Dans le fichier models.py, commentez la définition du modèle pour la table concernée. Cela empêche Django de tenter d'accéder à la table inexistante.
  3. Migrez la base de données (sans --fake) : Si vous utilisez Django 1.7 ou version ultérieure, exécutez les commandes suivantes :

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

    Pour les versions de Django antérieures à 1.7, remplacez les commandes ci-dessus par le suivant :

    • python manage.py schemamigration --auto
    • python manage.py migrate --fake
  4. Décommentez le modèle : Une fois la migration de la base de données terminée, décommentez la définition du modèle dans models.py.
  5. Migrez la base de données (sans --fake) : Enfin, relancez la migration de la base de données, cette fois sans l'option --fake. Cela créera le tableau nécessaire.

N'oubliez pas que ce processus suppose que vous avez supprimé le tableau en question. Si la table existe toujours, vérifiez si elle comporte des références ou des contraintes empêchant sa suppression.

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