Référence
CLI
Vue d'Ensemble

Vue d'Ensemble CLI Guide des commandes en ligne de commande (CLI) de CSWeb Community Platform.

Introduction CSWeb Community Platform fournit des commandes CLI Symfony pour gérer le breakout, vérifier la configuration, et administrer la plateforme.

Accès au CLI

Via Docker (Recommandé)

# Accéder au container
docker compose exec csweb bash
 
# Exécuter commande
php bin/console <command>
 
# Ou directement
docker compose exec csweb php bin/console <command>

Installation Manuelle

# Depuis le dossier du projet
cd /var/www/html
php bin/console <command>

Liste des Commandes

Commandes Principales

CommandeDescriptionPage
csweb:process-cases-by-dictBreakout sélectif par dictionnaire Documentation
csweb:check-database-driversVérifier drivers disponibles Documentation

Commandes Symfony Natives

CommandeDescription
cache:clearVider le cache Symfony
debug:routerAfficher toutes les routes
doctrine:migrations:migrateExécuter migrations DB
listLister toutes les commandes disponibles

Aide Contextuelle

Obtenir l'Aide d'une Commande

# Format général
php bin/console <command> --help
 
# Exemple
php bin/console csweb:process-cases-by-dict --help

Output exemple :

Description:
 Process cases by dictionary (selective breakout)

Usage:
 csweb:process-cases-by-dict dictionnaires=<DICT1>[,<DICT2>] [options]

Arguments:
 dictionnaires Comma-separated list of dictionaries to process Options:
 --threads=THREADS Number of parallel threads (default: 1)
 --overwrite Overwrite existing tables
 -v|vv|vvv Increase verbosity

Verbosity Levels Toutes les commandes supportent les niveaux de verbosité :

FlagNiveauOutput
(none)NORMALMessages INFO uniquement
-vVERBOSE+ Messages NOTICE
-vvVERY_VERBOSE+ Messages DEBUG
-vvvDEBUGTous messages + SQL queries

Exemple :

# Mode debug complet
docker compose exec csweb php bin/console csweb:process-cases-by-dict \
 dictionnaires=EVAL_DICT \
 -vvv

Variables d'Environnement Les commandes CLI utilisent les variables du fichier .env :

# Database
BREAKOUT_DB_TYPE=postgresql
POSTGRES_HOST=postgres
POSTGRES_DATABASE=csweb_analytics
 
# Logging
CSWEB_PROCESS_CASES_LOG_LEVEL=debug

Exemples Courants

1. Vérifier Configuration

# Vérifier drivers disponibles
docker compose exec csweb php bin/console csweb:check-database-drivers
 
# Tester connexions aux DB
docker compose exec csweb php bin/console csweb:check-database-drivers --test-connections

2. Breakout Sélectif

# Breakout simple
docker compose exec csweb php bin/console csweb:process-cases-by-dict \
 dictionnaires=EVAL_DICT
 
# Breakout multiple avec threads
docker compose exec csweb php bin/console csweb:process-cases-by-dict \
 dictionnaires=EVAL_DICT,KAIROS_DICT \
 --threads=5

3. Vider Cache

# Vider cache Symfony
docker compose exec csweb php bin/console cache:clear
 
# Vider cache en environnement prod
docker compose exec csweb php bin/console cache:clear --env=prod

4. Lister Toutes les Commandes

# Lister commandes CSWeb
docker compose exec csweb php bin/console list csweb
 
# Lister toutes les commandes disponibles
docker compose exec csweb php bin/console list

Logs

Logs des Commandes Les commandes écrivent dans les logs Symfony :

# Voir logs en temps réel
docker compose exec csweb tail -f var/logs/dev.log
 
# Filtrer par commande
docker compose exec csweb grep "process-cases" var/logs/dev.log

Niveaux de Log Configurable dans .env :

# Global
CSWEB_LOG_LEVEL=debug
 
# Spécifique process-cases
CSWEB_PROCESS_CASES_LOG_LEVEL=error

Automatisation

Cron Jobs

# Breakout automatique tous les jours à 2h00
crontab -e
 
# Ajouter:
0 2 * * * docker compose exec -T csweb php bin/console csweb:process-cases-by-dict dictionnaires=EVAL_DICT >> /var/log/csweb_cron.log 2>&1

Scripts Bash

#!/bin/bash
# breakout_all.sh - Breakout tous les dictionnaires DICTS=("EVAL_DICT" "KAIROS_DICT" "CENSUS_DICT")
 
for DICT in "${DICTS[@]}"; do echo "Processing $DICT..."
 docker compose exec -T csweb php bin/console csweb:process-cases-by-dict \
 dictionnaires=$DICT \
 --threads=3 \
 -vvv
done echo "All dictionaries processed!"

Troubleshooting

Commande Non Trouvée

Symptôme :

Command "csweb:process-cases-by-dict" is not defined.

Solutions :

  1. Vérifier que vous êtes dans le bon container
  2. Vider le cache : php bin/console cache:clear
  3. Dump autoload : composer dump-autoload

Timeout

Symptôme :

Maximum execution time exceeded

Solution :

# Augmenter timeout PHP
docker compose exec csweb php -d max_execution_time=0 bin/console <command>

Permission Denied

Symptôme :

Permission denied: /var/www/html/var/logs

Solution :

# Corriger permissions
docker compose exec csweb chown -R www-data:www-data /var/www/html/var

Ressources


CSWeb Community Platform v2.0 - CLI Overview