2 manage.py
Martin Pepin edited this page 2016-06-28 23:03:37 +02:00

Commandes utiles pour interagir avec gestioCOF

Django fournit un certain nombre de fonctions pour interagir avec GestioCOF en ligne de commande. Pour les lancer, taper python manage.py <command_name>. Une partie d'entre elles sont décrites ci-dessous.

Les indispensables

  • La commande runserver… lance le serveur ! On peut spécifier une interface et un port en ajoutant à la suite 0.0.0.0:8000 par exemple.
  • La commande migrate permet de faire suivre la base de donnée lorsque les modèles changent. Les "migrations" appliquées par migrate sont stockées dans app_name/migrations/.
    Lorsque vous effectuez des changements dans les modèles, utilisez makemigrations (cf plus bas) pour créer ces fichiers de migration automatiquement.
    On peut rétablir une version précise de la BDD, pour une application, avec migrate bda 0001 par exemple.
  • La commande makemigrations crée automatiquement les fichiers de migrations dont il est question plus haut. Ils sont stockés dans app_name/migrations/. Ils peuvent être édités à la main si les migrations automatiques ne suffisent pas à vos besoins. Typiquement s'il faut ajouter un élément à la base de donnée pour la rendre cohérente. Cf https://docs.djangoproject.com/en/1.9/ref/migration-operations/ pour plus de détails. Voir aussi https://git.eleves.ens.fr/cof-geek/gestioCOF/blob/master/bda/migrations/0002_add_tirage.py comme exemple.
  • La commande createsuperuser permet de créer un utilisateur avec tous les droits. Il peut créer des utilisateurs, des objets, etc via l'[interface-admin](gestiocof admin).

Autres commandes utiles

  • La commande shell ouvre un shell python qui connaît la config du site. Ça permet de faire toutes les opérations qu'on pourrait faire depuis une vue par exemple. Utile pour faire des essais avant de coder ou manipuler la base de données.
  • Un autre commande permettant de manipuler la base de donneés : dbshell qui lance un shell mysql sur la BDD de GestioCOF
  • Les commandes loaddata et dumpdata permettent respectivement de charger et d'exporter tout ou partie de la base de données. À noter que l'option --indent=4 est utile pour la lisibilité. Attention il peut se passer des choses pas nettes si on charge une bdd dans une bdd non vide.

Doc officielle

Pour plus de détails sur ces commandes et d'autres encore, ne pas hésiter à taper python manage.py help <command_name>et à visiter https://docs.djangoproject.com/en/1.9/ref/django-admin/