Skip to content
Snippets Groups Projects
Commit 25760355 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Correction de la méthode naïve pour extraire les requêtes contenues dans le...

Correction de la méthode naïve pour extraire les requêtes contenues dans le script. Déplacement de code.
parent 62166c94
No related branches found
No related tags found
No related merge requests found
Pipeline #4812 failed
...@@ -47,6 +47,7 @@ class ConsoleController extends AbstractConsoleController ...@@ -47,6 +47,7 @@ class ConsoleController extends AbstractConsoleController
$this->runSQLService->setLogger($logger); $this->runSQLService->setLogger($logger);
$result = $this->runSQLService->runSQLScript($path, $conn, $logFilepath); $result = $this->runSQLService->runSQLScript($path, $conn, $logFilepath);
$logger->info($result->isSuccess() ? "Exécution terminée avec succès." : "/!\ UNE ERREUR A ÉTÉ RENCONTRÉE /!\ ");
$logger->info("Durée : " . $result->getDurationInSec() . " sec"); $logger->info("Durée : " . $result->getDurationInSec() . " sec");
} }
......
...@@ -85,8 +85,6 @@ class RunSQLProcess ...@@ -85,8 +85,6 @@ class RunSQLProcess
$logFilePath = $this->logQueries(); $logFilePath = $this->logQueries();
$this->logger->info("'--> Logs : " . $logFilePath); $this->logger->info("'--> Logs : " . $logFilePath);
$this->logger->info($result->isSuccess() ? "Exécution terminée avec succès." : "Une erreur a été rencontrée!");
return $result; return $result;
} }
...@@ -105,8 +103,6 @@ class RunSQLProcess ...@@ -105,8 +103,6 @@ class RunSQLProcess
$logFilePath = $this->logQueries(); $logFilePath = $this->logQueries();
$this->logger->info("'--> Logs : " . $logFilePath); $this->logger->info("'--> Logs : " . $logFilePath);
$this->logger->info($result->isSuccess() ? "Exécution terminée avec succès." : "Une erreur a été rencontrée!");
return $result; return $result;
} }
...@@ -127,7 +123,8 @@ class RunSQLProcess ...@@ -127,7 +123,8 @@ class RunSQLProcess
*/ */
protected function extractQueriesFromScript() protected function extractQueriesFromScript()
{ {
$queries = array_filter(array_map('trim', explode('/', file_get_contents($this->scriptPath)))); $parts = preg_split("#^/$#m", file_get_contents($this->scriptPath));
$queries = array_filter(array_map('trim', $parts));
if (count($queries) === 0) { if (count($queries) === 0) {
throw new RuntimeException("Aucune requête trouvée dans le script '$this->scriptPath'"); throw new RuntimeException("Aucune requête trouvée dans le script '$this->scriptPath'");
......
...@@ -18,12 +18,12 @@ class RunSQLService ...@@ -18,12 +18,12 @@ class RunSQLService
* Exécute le script spécifié par son chemin. * Exécute le script spécifié par son chemin.
* *
* NB: Les requêtes doivent pouvoir être extraites afin de les exécuter une par une. Pour cela, vous devez donc * NB: Les requêtes doivent pouvoir être extraites afin de les exécuter une par une. Pour cela, vous devez donc
* utiliser dans vos scripts SQL le caractère de fin '/' et mettre un ';' seulement où c'est indispensable. * terminer chaque requête par une nouvelle ligne ne contenant que le caractère '/'.
* *
* Exemple de script Oracle acceptable : * Exemple de script Oracle acceptable :
* <code> * <code>
* insert into API_LOG (ID, REQ_URI, REQ_START_DATE, REQ_END_DATE, REQ_STATUS, REQ_RESPONSE, REQ_TABLE) * insert into API_LOG (ID, REQ_URI, REQ_START_DATE, REQ_END_DATE, REQ_STATUS, REQ_RESPONSE, REQ_TABLE)
* select API_LOG_ID_SEQ.nextval, 'xxxxx', sysdate, sysdate, 'test', 'hello!!', 'TEST' from dual * select API_LOG_ID_SEQ.nextval, 'http://xyz.xx', sysdate, sysdate, 'test', 'hello!!', 'TEST' from dual
* / * /
* *
* declare * declare
...@@ -31,7 +31,7 @@ class RunSQLService ...@@ -31,7 +31,7 @@ class RunSQLService
* begin * begin
* select sysdate into d from dual; * select sysdate into d from dual;
* insert into API_LOG(ID, REQ_URI, REQ_START_DATE, REQ_END_DATE, REQ_STATUS, REQ_RESPONSE, REQ_TABLE) * insert into API_LOG(ID, REQ_URI, REQ_START_DATE, REQ_END_DATE, REQ_STATUS, REQ_RESPONSE, REQ_TABLE)
* select API_LOG_ID_SEQ.nextval, 'yyyyy', d, d, 'test', 'hello!!', 'TEST' from dual; * select API_LOG_ID_SEQ.nextval, 'http://xyz.xx', d, d, 'test', 'hello/bonjour!!', 'TEST' from dual;
* end; * end;
* / * /
* *
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment