Maison  >  Article  >  base de données  >  Comment corriger l'erreur « La table n'existe pas » lors de la resynchronisation de votre base de données Django ?

Comment corriger l'erreur « La table n'existe pas » lors de la resynchronisation de votre base de données Django ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-08 19:41:02618parcourir

How to Fix the

Django : Erreur "La table n'existe pas"

Lors de la suppression des tables associées à une application et de la tentative de resynchronisation de la base de données à l'aide de syncdb commande, une erreur peut se produire indiquant que la table n'existe plus.

Cause :

La table manquante est probablement celle supprimée lorsque les tables de l'application associée ont été supprimées. Django nécessite l'existence d'une table avant de synchroniser les données.

Solution :

Pour récupérer la table manquante, suivez ces étapes :

  1. Commentez le modèle :
    Localisez le modèle correspondant à la table manquante dans models.py et commentez-le.
  2. Créer des migrations (Django 1.7) :
    Si la version de Django est 1.7 ou ultérieure, exécutez la commande makemigrations :

    python manage.py makemigrations
  3. Appliquer les migrations (Fake Run) :
    Appliquer les migrations sans réellement altérer la base de données en utilisant l'indicateur --fake :

    python manage.py migrate --fake
  4. Décommentez le modèle :
    Décommentez le modèle précédemment commenté dans models. py.
  5. Réappliquer les migrations (pas de faux) :
    Exécutez à nouveau les migrations, cette fois en omettant l'indicateur --fake pour créer définitivement la table :

    python manage.py migrate

Alternative pour Django < 1.7 :

Pour les versions de Django antérieures à 1.7, les commandes suivantes doivent être utilisées :

python manage.py schemamigration someapp --auto
python manage.py migrate someapp --fake

En suivant ces étapes, vous pouvez réussir à récupérer la table manquante et à synchroniser la base de données correctement.

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