check-database-drivers Commande CLI pour vérifier les drivers de base de données disponibles.
Description La commande csweb:check-database-drivers vérifie quels drivers PDO sont installés et disponibles pour CSWeb Community Platform.
Syntax
docker compose exec csweb php bin/console csweb:check-database-drivers [--test-connections]Options
--test-connections Tester les connexions aux bases de données configurées.
Sans option :
php bin/console csweb:check-database-driversAvec test de connexion :
php bin/console csweb:check-database-drivers --test-connectionsOutput
Sans --test-connections
Checking available database drivers...
pdo_mysql : Available pdo_pgsql : Available pdo_sqlsrv : Available All required drivers are installed.Avec --test-connections
Checking available database drivers...
pdo_mysql : Available pdo_pgsql : Available pdo_sqlsrv : Available Testing database connections...
MySQL Metadata : Connected to mysql:3306/csweb_metadata PostgreSQL Breakout : Connected to postgres:5432/csweb_analytics All connections successful!Si Driver Manquant
Checking available database drivers...
pdo_mysql : Available pdo_pgsql : NOT FOUND pdo_sqlsrv : Available WARNING: pdo_pgsql driver is not installed.
PostgreSQL breakout will not work.
To install:
docker compose exec csweb apt-get install php8.1-pgsql docker compose restart cswebSi Connexion Échoue
Testing database connections...
MySQL Metadata : Connected to mysql:3306/csweb_metadata PostgreSQL Breakout : Connection FAILED Error: SQLSTATE[08006] Connection refused Host: postgres, Port: 5432
Solutions:
1. Verify PostgreSQL container is running: docker compose ps
2. Check POSTGRES_HOST in .env
3. Verify credentials in .envUse Cases
1. Vérification Post-Installation Après installation de CSWeb Community Platform :
docker compose exec csweb php bin/console csweb:check-database-driversAttendu : Les 3 drivers (mysql, pgsql, sqlsrv) doivent être disponibles.
2. Debug Problème de Connexion Si breakout échoue avec erreur driver :
docker compose exec csweb php bin/console csweb:check-database-drivers --test-connectionsCela teste :
- Drivers installés
- Connexion MySQL metadata
- Connexion DB breakout (selon
BREAKOUT_DB_TYPE)
3. Changement de SGBD Après changement de BREAKOUT_DB_TYPE dans .env :
# Modifier .env
# BREAKOUT_DB_TYPE=postgresql mysql
# Redémarrer
docker compose restart csweb
# Vérifier
docker compose exec csweb php bin/console csweb:check-database-drivers --test-connections4. Installation Driver Manquant Si driver manquant détecté :
# Accéder au container
docker compose exec csweb bash
# Installer driver manquant
apt-get update
apt-get install -y php8.1-pgsql # PostgreSQL
apt-get install -y php8.1-mysql # MySQL
# Exit container
exit
# Redémarrer
docker compose restart csweb
# Re-vérifier
docker compose exec csweb php bin/console csweb:check-database-driversDrivers Supportés
pdo_mysql
Pour :
- MySQL metadata (obligatoire)
- MySQL breakout (optionnel)
Installation :
apt-get install php8.1-mysqlpdo_pgsql
Pour :
- PostgreSQL breakout (optionnel)
Installation :
apt-get install php8.1-pgsqlpdo_sqlsrv
Pour :
- SQL Server breakout (optionnel)
Installation (Linux) :
# Microsoft ODBC Driver
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
apt-get update
ACCEPT_EULA=Y apt-get install -y msodbcsql18
# Extension PHP
pecl install sqlsrv pdo_sqlsrv
echo "extension=pdo_sqlsrv.so" > /etc/php/8.1/cli/conf.d/30-pdo_sqlsrv.iniVariables d'Environnement Utilisées La commande lit les variables suivantes depuis .env :
# Type de DB pour breakout
BREAKOUT_DB_TYPE=postgresql
# MySQL Metadata
MYSQL_HOST=mysql
MYSQL_PORT=3306
MYSQL_DATABASE=csweb_metadata
MYSQL_USER=csweb_user
MYSQL_PASSWORD=***
# PostgreSQL Breakout
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DATABASE=csweb_analytics
POSTGRES_USER=csweb_analytics
POSTGRES_PASSWORD=***
# MySQL Breakout (si BREAKOUT_DB_TYPE=mysql)
MYSQL_BREAKOUT_HOST=mysql-breakout
MYSQL_BREAKOUT_PORT=3307
MYSQL_BREAKOUT_DATABASE=csweb_breakout
# SQL Server Breakout (si BREAKOUT_DB_TYPE=sqlserver)
SQLSERVER_HOST=sqlserver
SQLSERVER_PORT=1433
SQLSERVER_DATABASE=CSWeb_AnalyticsCode Source La commande se trouve dans :
src/Command/CheckDatabaseDriversCommand.phpTroubleshooting
Tous les Drivers Manquants
Symptôme :
pdo_mysql : NOT FOUND pdo_pgsql : NOT FOUND pdo_sqlsrv : NOT FOUNDCause : Extensions PHP pas installées.
Solution :
# Rebuild container avec Dockerfile correct
docker compose build --no-cache csweb
docker compose up -dDriver Installé mais Non Détecté
Symptôme :
pdo_pgsql : NOT FOUNDMais extension installée :
php -m | grep pdo_pgsql
# pdo_pgsqlCause : Extension installée pour PHP CLI mais pas PHP-FPM.
Solution :
# Copier config CLI vers FPM
cp /etc/php/8.1/cli/conf.d/20-pdo_pgsql.ini /etc/php/8.1/fpm/conf.d/
# Redémarrer PHP-FPM
service php8.1-fpm restartTest Connexion Échoue (Driver OK)
Symptôme :
pdo_pgsql : Available PostgreSQL Breakout : Connection FAILEDCauses possibles :
- Container DB pas démarré :
docker compose ps - Mauvaises credentials dans
.env - Firewall bloque (mode remote)
- Mauvais host (typo dans
.env)
Debug :
# Vérifier containers
docker compose ps
# Vérifier variables .env
docker compose exec csweb env | grep POSTGRES
# Tester connexion manuelle
docker compose exec postgres psql -U csweb_analytics -d csweb_analyticsRessources
- Environment Variables : Config - Environment
- Multi-DB Guide : Database - Multi-DB
- Troubleshooting : Common Issues
- All CLI Commands : CLI - Commands
CSWeb Community Platform v2.0 - check-database-drivers Command