.. -*- coding: utf-8 -*-
.. _cubicweb-ctl:
L'outil `cubicweb-ctl`
======================
`cubicweb-ctl` est le couteau suisse pour la gestion d'instances CubicWeb.
La syntaxe générale est ::
cubicweb-ctl <commande> [options commande] <arguments commandes>
Pour voir les commandes disponibles ::
cubicweb-ctl
cubicweb-ctl --help
A noter que les commandes disponibles varient en fonction des parties d'CubicWeb
qui sont installées.
Pour voir l'aide pour une commande spécifiques ::
cubicweb-ctl <commande> --help
Commandes pour la création d'un cube
------------------------------------
* ``newcube``, crée un nouveau cube sur le système de fichiers
à partir du nom passé en paramètre. Cette commande crée le cube à partir
d'une squelette d'application, incluant également les fichiers pour le
packaging debian)
Commandes pour la création d'une instance
-----------------------------------------
* ``create``, crée les fichiers de configuration d'une instance
* ``db-create``, crée la base de données système d'une instance (tables et
extensions uniquement)
* ``db-init``, initialise la base de données système d'une instance (schéma,
groupes, utilisateurs, workflows...)
Par défaut ces trois commandes sont enchainées.
Commande pour la création d'une instance pour Google App Engine
---------------------------------------------------------------
* ``newgapp``, crée les fichiers de configuration d'une instance
Cette commande doit être suivie de l'exécution de commandes
permettant l'initialisation de la base de données spécifique à
Google App Engine, appellée ``datastore``.
Pour plus de détails veuillez vous référer à `LAX <>`_
Commandes pour le lancement des instances
-----------------------------------------
* ``start``, démarre une, plusieurs, ou toutes les instances
* ``stop``, arrêt une, plusieurs, ou toutes les instances
* ``restart``, redémarre une, plusieurs, ou toutes les instances
* ``status``, donne l'état des instances
Commandes pour la maintenance des instances
-------------------------------------------
* ``upgrade``, lance la migration d'instance(s) existante(s) lorsqu'une nouvelle
version d'CubicWeb ou du composant est installée
* ``shell``, ouvre un shell de migration pour la maintenance manuelle d'une instance
* ``db-dump``, crée un dump de la base de données système
* ``db-restore``, restore un dump de la base de données système
* ``db-check``, vérifie l'intégrité des données d'une instance. Si la correction
automatique est activée, il est conseillé de faire un dump avant cette
opération
* ``schema-sync``, , synchronise le schéma persistent d'une instance avec le schéma
de l'application. Il est conseillé de faire un dump avant cette opération
Commandes pour la maintenance des catalogues i18n
-------------------------------------------------
* ``i18ncubicweb``, regénère les catalogues de messages de la librairie CubicWeb
* ``i18ncube``, regénère les catalogues de messages d'un composant
* ``i18ninstance``, recompile les catalogues de messages d'une instance. Cela est
effectué automatiquement lors d'une upgrade
Cf :ref:`Internationalisation`.
Autres commandes
----------------
* ``list``, donne la liste des configurations, des composants et des instances
disponibles
* ``delete``, supprime une instance (fichiers de configuration et base de données)
Exemples
--------
Creation d'une instance a partir de cube existant
`````````````````````````````````````````````````
Afin de creer une instance a partir d'un cube existant, executez la commande
suivant ::
cubicweb-ctl create <nom_cube> <nom_instance>
Cette commande va creer les fichiers de configuration d'une instance dans
``~/etc/cubicweb.d/<nom_instance>``.
L'outil ``cubicweb-ctl`` va vous autoriser a executer au sein de ``create``
les commandes ``db-create`` et ``db-init`` afin de completer la creation de
votre instance en une seule commande.
Si vous decidez de ne pas le faire lorsque ``cubicweb-ctl create`` vous le
propose, alors n'oubliez pas de lancer ces commandes (``cubicweb-ctl db-create``,
``cubicweb-ctl db-init`` ) par la suite, sinon
votre installation ne sera pas complete.
Creation d'une instance a partir d'une nouveau cube
```````````````````````````````````````````````````
Creez avant tout votre nouveau cube ::
cubicweb-ctl newcube <nom_cube>
Cette commande va creer un nouveau cube dans ``/path/to/forest/cubicweb/cubes/<nom_cube>``.