Commit 1e6d1c3b authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Découverte des colonnes : déplacement dans le try/catch pour ne pas stopper si...

Découverte des colonnes : déplacement dans le try/catch pour ne pas stopper si les données sources sont vides.
parent 7a2b19fe
Loading
Loading
Loading
Loading
+7 −0
Changes for src/UnicaenDbImport/DatabaseFacade.php: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -241,7 +241,14 @@ class DatabaseFacade
            $selectSql = $this->codeGenerator->generateSQLForSelectFromSource($source);
            $result = $this->queryExecutor->fetchAll($selectSql, $source->getConnection());

            if (empty($result)) {
                throw new RuntimeException(
                    "Impossible de déterminer la liste des colonnes à partir des données sources car celles-ci sont vides");
            }

            $columns = array_keys($result[0]);

            // retrait de la colonne $source->getSourceCodeColumn()
            unset($columns[array_search($source->getSourceCodeColumn(), $columns)]);

            $source->setData($result);
+3 −3
Changes for src/UnicaenDbImport/Runner.php: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -45,9 +45,9 @@ class Runner

        $this->loadDatabaseFacadeForDestination($destination);

        try {
            $this->databaseFacade->executeSelectSource($source); //Pour bien détecter les colonnes

        try {
            $this->databaseFacade->validateDestinationTable($destination);

            $this->databaseFacade->truncateTable($destination->getTable(), $destination);
@@ -76,11 +76,11 @@ class Runner

        $this->loadDatabaseFacadeForDestination($destination);

        $this->databaseFacade->executeSelectSource($source); //Pour bien détecter les colonnes

        $intermediateTable = null;

        try {
            $this->databaseFacade->executeSelectSource($source); //Pour bien détecter les colonnes

            $this->databaseFacade->validateDestinationTable($destination);

            if ($synchro->requiresIntermediateTable()) {