|
@@ -4,11 +4,9 @@ declare(strict_types=1);
|
|
|
|
|
|
|
|
namespace App\Service\Cron\Job;
|
|
namespace App\Service\Cron\Job;
|
|
|
|
|
|
|
|
-use App\Entity\Organization\Organization;
|
|
|
|
|
use App\Service\Cron\BaseCronJob;
|
|
use App\Service\Cron\BaseCronJob;
|
|
|
use Doctrine\DBAL\Connection;
|
|
use Doctrine\DBAL\Connection;
|
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
|
-use Symfony\Component\Console\Command\Command;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Cron job dédié au contrôle du backup de la DB Opentalent.
|
|
* Cron job dédié au contrôle du backup de la DB Opentalent.
|
|
@@ -24,7 +22,7 @@ use Symfony\Component\Console\Command\Command;
|
|
|
*/
|
|
*/
|
|
|
class DbCheck extends BaseCronJob
|
|
class DbCheck extends BaseCronJob
|
|
|
{
|
|
{
|
|
|
- const IGNORE_EMPTY_TABLES = [
|
|
|
|
|
|
|
+ public const IGNORE_EMPTY_TABLES = [
|
|
|
'messenger_messages',
|
|
'messenger_messages',
|
|
|
'enqueue',
|
|
'enqueue',
|
|
|
'zzz_.*',
|
|
'zzz_.*',
|
|
@@ -38,7 +36,7 @@ class DbCheck extends BaseCronJob
|
|
|
'tag_control',
|
|
'tag_control',
|
|
|
'tag_educationNotation',
|
|
'tag_educationNotation',
|
|
|
'tag_educationStudent',
|
|
'tag_educationStudent',
|
|
|
- 'tag_repair'
|
|
|
|
|
|
|
+ 'tag_repair',
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
public function __construct(
|
|
public function __construct(
|
|
@@ -47,12 +45,13 @@ class DbCheck extends BaseCronJob
|
|
|
parent::__construct();
|
|
parent::__construct();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public function preview(): void {
|
|
|
|
|
|
|
+ public function preview(): void
|
|
|
|
|
+ {
|
|
|
$this->ui->print('No preview available for this job');
|
|
$this->ui->print('No preview available for this job');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * Execute database integrity checks
|
|
|
|
|
|
|
+ * Execute database integrity checks.
|
|
|
*/
|
|
*/
|
|
|
public function execute(): void
|
|
public function execute(): void
|
|
|
{
|
|
{
|
|
@@ -63,6 +62,8 @@ class DbCheck extends BaseCronJob
|
|
|
$connection = $this->getDbConnection();
|
|
$connection = $this->getDbConnection();
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
|
$this->logger->critical($e->getMessage());
|
|
$this->logger->critical($e->getMessage());
|
|
|
|
|
+
|
|
|
|
|
+ return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$this->logger->info('2. Vérification de l\'intégrité des données');
|
|
$this->logger->info('2. Vérification de l\'intégrité des données');
|
|
@@ -75,7 +76,7 @@ class DbCheck extends BaseCronJob
|
|
|
|
|
|
|
|
foreach ($tables as $table) {
|
|
foreach ($tables as $table) {
|
|
|
try {
|
|
try {
|
|
|
- if (preg_match('/^' . implode('|', self::IGNORE_EMPTY_TABLES) . '$/', $table)) {
|
|
|
|
|
|
|
+ if (preg_match('/^'.implode('|', self::IGNORE_EMPTY_TABLES).'$/', $table)) {
|
|
|
$this->logger->debug(sprintf('Table %s: -- ignored --', $table));
|
|
$this->logger->debug(sprintf('Table %s: -- ignored --', $table));
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
@@ -96,23 +97,24 @@ class DbCheck extends BaseCronJob
|
|
|
$this->logger->critical('%d tables vides détectées sur %d tables au total');
|
|
$this->logger->critical('%d tables vides détectées sur %d tables au total');
|
|
|
$this->logger->error('Tables vides:');
|
|
$this->logger->error('Tables vides:');
|
|
|
foreach ($emptyTables as $table) {
|
|
foreach ($emptyTables as $table) {
|
|
|
- $this->logger->error('- ' . $table);
|
|
|
|
|
|
|
+ $this->logger->error('- '.$table);
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
$this->logger->info('Toutes les tables sont présentes et contiennent des données');
|
|
$this->logger->info('Toutes les tables sont présentes et contiennent des données');
|
|
|
}
|
|
}
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
|
- $this->logger->critical('Erreur lors de la vérification de l\'intégrité des données: ' . $e->getMessage());
|
|
|
|
|
- $this->logger->debug('Stack trace: ' . $e->getTraceAsString());
|
|
|
|
|
|
|
+ $this->logger->critical('Erreur lors de la vérification de l\'intégrité des données: '.$e->getMessage());
|
|
|
|
|
+ $this->logger->debug('Stack trace: '.$e->getTraceAsString());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* Establishes a connection to the database.
|
|
* Establishes a connection to the database.
|
|
|
*
|
|
*
|
|
|
- * @return Connection The active database connection.
|
|
|
|
|
- * @throws \RuntimeException If the connection could not be established
|
|
|
|
|
- * or if an error occurs during the process.
|
|
|
|
|
|
|
+ * @return Connection the active database connection
|
|
|
|
|
+ *
|
|
|
|
|
+ * @throws \RuntimeException if the connection could not be established
|
|
|
|
|
+ * or if an error occurs during the process
|
|
|
*/
|
|
*/
|
|
|
private function getDbConnection(): Connection
|
|
private function getDbConnection(): Connection
|
|
|
{
|
|
{
|
|
@@ -137,7 +139,7 @@ class DbCheck extends BaseCronJob
|
|
|
throw new \RuntimeException('Impossible de se connecter à la base de données');
|
|
throw new \RuntimeException('Impossible de se connecter à la base de données');
|
|
|
}
|
|
}
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
|
- throw new \RuntimeException('Erreur lors de la connexion à la base de données: ' . $e->getMessage());
|
|
|
|
|
|
|
+ throw new \RuntimeException('Erreur lors de la connexion à la base de données: '.$e->getMessage());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return $connection;
|
|
return $connection;
|