web-dev-qa-db-fra.com

Django: Erreur: Commande inconnue: 'makemigrations'

J'essaie de suivre le didacticiel Django et j'ai rencontré l'erreur suivante lorsque je saisis python manage.py makemigrations polls

Unknown command: 'makemigrations'

Voici le link vers le didacticiel et j'ai accompli toutes les étapes précédentes avec succès et je ne suis pas sûr de ce qui ne va pas maintenant ou de la façon de le réparer.

INSTALLED_APPS = (
    'Django.contrib.admin',
    'Django.contrib.auth',
    'Django.contrib.contenttypes',
    'Django.contrib.sessions',
    'Django.contrib.messages',
    'Django.contrib.staticfiles',
    'polls',
    'South',
)

Réponse: j'ai dû modifier INSTALLED_APPS en:

INSTALLED_APPS = (
        'Django.contrib.admin',
        'Django.contrib.auth',
        'Django.contrib.contenttypes',
        'Django.contrib.sessions',
        'Django.contrib.messages',
        'Django.contrib.staticfiles',
        'polls',
    )

et aussi utilisé cette commande: python manage.py syncdb

23
Mona Jalal

Les migrations ont été ajoutées pour la première fois à la version 1.7, publiée officiellement le 2 septembre 2014. Vous devez vous assurer que votre tutoriel correspond à la version de Django avec laquelle vous travaillez. Par exemple, cette version du tutoriel couvre la version 1.9:

https://docs.djangoproject.com/fr/1.9/intro/tutorial01/

Ou, si vous utilisez une version plus ancienne de Django, vous pouvez remplacer le "1.9" de cette URL par la version de votre choix (retour à la version 1.3). Ou utilisez le menu déroulant de la page de documentation pour choisir la version et recherchez "tutoriel".

22
Peter DeGlopper

Découvrez quelle version de Django vous utilisez ( merci @BradyEmerso n):

python -c "import Django; print(Django.get_version())"

Si plus vieux que 1.8:

pip install --upgrade Django
3
Bob Stein

Dans Django, Makemigration a été ajouté après la version 1.7. Par conséquent, si vous utilisez une ancienne version de Django, vous devez modifier settings.py et ajouter votre application dans l'application installée, comme 

INSTALLED_APPS = (
    'Demo',
    'Django.contrib.admin',
    'Django.contrib.auth',
    'Django.contrib.contenttypes',
    'Django.contrib.sessions',
    'Django.contrib.messages',
    'Django.contrib.staticfiles',
)

et alors vous pouvez exécuter la commande 

python manage.py syncdb 

2
bhatt ravii

J'utilisais la version 1.9 et j'obtiens toujours cette erreur. J'avais des migrations non appliquées et c'était la cause première dans mon cas. J'ai lancé 'python manage.py migrate' pour les appliquer et cela a fonctionné pour moi.

1

Vous devez charger l'environnement virtuel avant de le faire.

Utilisez le code ci-dessous pour Linux/OSX:

source venv/bin/active

Et le code suivant pour Windows

source venv/Scripts/activate
1
user3704354

Pour la première fois, j'ajoute le morceau de code suivant dans le fichier nom_projet\settings.py. 

                  `INSTALLED_APPS = [
        'Django.contrib.admin',
        'Django.contrib.auth',
        'Django.contrib.contenttypes',
        'Django.contrib.sessions',
        'Django.contrib.messages',
        'Django.contrib.staticfiles',
        #Django REST Framework
        'rest_framework',
        #Games application
        'games.apps.GamesConfig',
                  ]`

Après l'avoir sauvegardé, quand j'ai exécuté le code suivant, j'ai eu une erreur.

                 `python manage.py makemigrations games`

Ensuite, je vérifie le fichier settings.py. Je réalise qu’il ya deux INSTALLED_APPS et que le second n’a pas de suite. Quand j'ai ajouté ces derniers le code a fonctionné.

       `#Django REST Framework
       'rest_framework',
        #Games application
       'games.apps.GamesConfig',`
0
Sibel Kahraman

J'ai suivi la procédure suivante (pour Python version 3.6.4) pour résoudre ce problème:

  1. installer virtualenv
  2. Activer virtualenv

À votre santé

0
Akshay Lokur