# HG changeset patch # User ymh # Date 1380684180 -7200 # Node ID b23fae63f7321c8152b4982a32a7d574023e06e5 # Parent f1854630734fb4ab6994b3c25e01901f1e870513 - correction on documentation - correction on export - add doc on administration diff -r f1854630734f -r b23fae63f732 doc/administration.rst --- a/doc/administration.rst Tue Oct 01 02:53:54 2013 +0200 +++ b/doc/administration.rst Wed Oct 02 05:23:00 2013 +0200 @@ -2,24 +2,258 @@ administration ************** -commandes à passer lors d'un upgrade de version +Django et ses modules d'extensions propose de nombreuses commande d'administration. Le but est ici d'en lister les plus utiles pour l'administration de l'application. +L`accès à ces commandes se fait par le script ``manage.py`` situee dans le répertoire ``src`` de l'application. +Il est bien sur indispensable d'activer l'environement virtuel de l'application (cf. :ref:`deployment-virtualenv`) avant de lancer ce script. +Le reste des commandes est documenté soit à l'adresse suivante : https://docs.djangoproject.com/en/1.5/ref/django-admin/, soit directement en invoquant la commande avec l'option ``--help`` i.e.:: + + cd src + python manage.py --help + + +Commandes à passer lors d'un upgrade de version =============================================== -syncdb --migrate -collectstatic +Lors d'une mise à jour de l'application les commandes suivantes sont systématiquement à lancer : +:: + + python manage.py syncdb --migrate + python manage.py collectstatic -commande d'administration +La première permet la mise à jour du schéma de la base de donnée et de lancer les éventuelles migration de données. +La deuxième sert à mettre à jour les resources statiques. + + +Commande d'administration ========================= -import_record +Voici une liste des commandes ser vant à gérer l'import et l'export des notices (``Record``). + +``import_record`` +----------------- + +.. code-block:: bash + + $ python manage.py import_record --help + Usage: manage.py import_record [options] record_url ... + + Import p4l record rdf format + + Options: + -v VERBOSITY, --verbosity=VERBOSITY + Verbosity level; 0=minimal output, 1=normal output, + 2=verbose output, 3=very verbose output + --settings=SETTINGS The Python path to a settings module, e.g. + "myproject.settings.main". If this is not provided, the + DJANGO_SETTINGS_MODULE environment variable will be + used. + --pythonpath=PYTHONPATH + A directory to add to the Python path, e.g. + "/home/djangoprojects/myproject". + --traceback Print traceback on exception + -b BATCH_SIZE, --batch-size=BATCH_SIZE + number of object to import in bulk operations + -p, --preserve preserve existing record + -i, --index index while importing + --version show program version number and exit + -h, --help show this help message and exit + + +Cette commande importe des notices en format rdf speecifique au projet dans l'application. Elle prend comme argument une liste de chemin vers les fichiers à importer. +Les options suivantes sont disponibles: + + * ``-b BATCH_SIZE`` : contrôle la taille des lots lors de l'import. + Augmenter la taille des lots peut améliorer les performances lors de l'import mais augmente la consomation mémoire. + (valeur par défaut: 50) + + * ``-p`` : ne tente pas d'effacer les notices lors de l'import. + L'import d'une notice existante (même identifiant) proviquera une erreur et l'arrêt de l'import + + * ``-i`` : met à jour l'index des notices lors de l'import. + +Les points suivants sont à noter: + + #. Toute erreur interrompt l'import des notices. + + #. L'import d'un fichier n'estr pas transactionnel: i.e. un fichier peut être partiellement importé. + + #. À un lot (option `b`) correspond une transaction de base de donnée. + Donc en cas d'erreur lors d'un l'import, le lot courant complet est annulé. + + #. L'indexation n'est pas transactionnelle. + Donc en cas d'erreur d'import il est possible que certaine notice ait été indexée mais ne se retrouve pas finalement en base. + Il est à noté que dans ce cas, ces notices apparaîtrons dans la page de liste des notices. -dump_record + +``dump_record`` +--------------- + +.. code-block:: bash + + $ python manage.py dump_record --help + Usage: manage.py dump_record [options] file_path... -rebuild_index + Export p4l record rdf format + + Options: + -v VERBOSITY, --verbosity=VERBOSITY + Verbosity level; 0=minimal output, 1=normal output, + 2=verbose output, 3=very verbose output + --settings=SETTINGS The Python path to a settings module, e.g. + "myproject.settings.main". If this is not provided, the + DJANGO_SETTINGS_MODULE environment variable will be + used. + --pythonpath=PYTHONPATH + A directory to add to the Python path, e.g. + "/home/djangoprojects/myproject". + --traceback Print traceback on exception + -l LIMIT, --limit=LIMIT + number of record to export. -1 is all (default) + -s SKIP, --skip=SKIP number of record to skip before export. default 0. + -b BATCH, --batch=BATCH + query batch default 100. + -j, --bzip2 bz2 compress + -z, --gzip gzip compress + --version show program version number and exit + -h, --help show this help message and exit + + +Cette commande exporte des notices en format rdf. Elle prend comme argument le chemin d'un fichier. Si le fichier existe, celui-ci sera écrasé sans aucune confirmation. +Lors de l'export les notices sont classées par leur identifiant (tri syntaxique ascendant). + +Les options suivantes sont disponibles: + + * ``-b BATCH`` : tailles des lots de notices par requête de base de données. La valeur de ce paramêtre dépend des performances et capacité du serveur de base de données et de la machine d'export. + * ``-l LIMIT`` : nombre maximum de notices à exporter. -1 (le défaut) exporte toute les notices. + * ``-s SKIP`` : nombre de notice à ignorer avant de commencer l'export. O par défaut. Rappel: Lors de l'export les notices sont classées par leur identifiant (tri syntaxique ascendant). + Avec l'option ``-l``, cette option permet l'export des notices en lots. + * ``-j``, ``-z`` : permet la compression à la volée des données. La compression se fait au fur et à mesure de l'export. + +Les points suivants sont à noter: + + #. Toute erreur interompt immédiatement l'export. + #. En cas d'erreur, l'export est immédiatement interrompu et le fichier produit ne sera pas valide. + En particulier, dans le cas où une option de compression a été activé, l'archive partielle crée peut s'avérer illisible. + + +``rebuild_index`` +----------------- + +.. code-block:: bash -update_index + $ python manage.py rebuild_index --help + Usage: manage.py rebuild_index [options] + + Completely rebuilds the search index by removing the old data and then updating. + + Options: + -v VERBOSITY, --verbosity=VERBOSITY + Verbosity level; 0=minimal output, 1=normal output, + 2=verbose output, 3=very verbose output + --settings=SETTINGS The Python path to a settings module, e.g. + "myproject.settings.main". If this isn't provided, the + DJANGO_SETTINGS_MODULE environment variable will be + used. + --pythonpath=PYTHONPATH + A directory to add to the Python path, e.g. + "/home/djangoprojects/myproject". + --traceback Print traceback on exception + -a AGE, --age=AGE Number of hours back to consider objects new. + -s START_DATE, --start=START_DATE + The start date for indexing within. Can be any + dateutil-parsable string, recommended to be YYYY-MM- + DDTHH:MM:SS. + -e END_DATE, --end=END_DATE + The end date for indexing within. Can be any dateutil- + parsable string, recommended to be YYYY-MM- + DDTHH:MM:SS. + -b BATCHSIZE, --batch-size=BATCHSIZE + Number of items to index at once. + -r, --remove Remove objects from the index that are no longer + present in the database. + -u USING, --using=USING + Update only the named backend (can be used multiple + times). By default all backends will be updated. + -k WORKERS, --workers=WORKERS + Allows for the use multiple workers to parallelize + indexing. Requires multiprocessing. + --noinput If provided, no prompts will be issued to the user and + the data will be wiped out. + --version show program's version number and exit + -h, --help show this help message and exit + +Commande utilisée pour reconstruire l'index Elasticsearch. L'age d'une notice est calculé à partir de sa date de mise à jour. +Cette date est la date d'import de la notice si elle n'a pas été mise à jour dans l'application, et sa date de création si elle a été créée dans l'application. +Cette commande est fournie par le module Django ``Haystack``. Sa documentation se trouve à l'adresse suivante : http://django-haystack.readthedocs.org/en/v2.1.0/management_commands.html + +``update_index`` +---------------- + +.. code-block:: bash -console d'administration -======================== + $ python manage.py update_index --help + Usage: manage.py update_index [options]