Maison > base de données > tutoriel mysql > 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
Libérer: 2024-11-08 19:41:02
original
705 Les gens l'ont consulté

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
    Copier après la connexion
  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
    Copier après la connexion
  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
    Copier après la connexion

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
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal