Commit a05a87d1 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Nouvelle option de config activant ou non la suppression automatique des...

Nouvelle option de config activant ou non la suppression automatique des tables intermédiaires src_ au début de l'import
parent a0f422e8
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -43,6 +43,13 @@ return [
                 */
                'intermediate_table' => 'src_progfin',

                /**
                 * Suppression automatique des éventuelles tables intermédiaires "src_" au début de l'import.
                 * Si la suppression automatique est désactivée, l'existence d'une table intermédiaire au démarrage
                 * d'un import fera échouer l'import.
                 */
                'intermediate_table_auto_drop' => false,

                /**
                 * Configuration de la destination des données importées :
                 * - 'name'               : petit nom (unique) de la destination
+8 −0
Original line number Diff line number Diff line
@@ -106,6 +106,14 @@ class Import implements ImportInterface
        return static::INTERMEDIATE_TABLE_NAME_PREFIX . $this->getDestination()->getTable();
    }

    /**
     * @return bool
     */
    public function getIntermediateTableAutoDrop()
    {
        return (bool) $this->config->get('intermediate_table_auto_drop', false);
    }

    /**
     * @return bool
     */
+7 −0
Original line number Diff line number Diff line
@@ -33,6 +33,13 @@ interface ImportInterface
     */
    public function getIntermediateTable();

    /**
     * Indique si la suppression automatique de la table intermédiaire "src_" est activée.
     *
     * @return bool
     */
    public function getIntermediateTableAutoDrop();

    /**
     * Détermine si l'utilisation d'une table intermédiaire dans la base de données de destination
     * est nécessaire.
+4 −0
Original line number Diff line number Diff line
@@ -61,7 +61,11 @@ abstract class AbstractImporter implements ImporterInterface

            if ($this->import->requiresIntermediateTable()) {
                $this->intermediateTable = $this->import->getIntermediateTable();
                if ($this->import->getIntermediateTableAutoDrop()) {
                    $this->databaseFacade->dropIntermediateTable($this->intermediateTable, $destination);
                } else {
                    $this->databaseFacade->checkIntermediateTableNotExists($destination, $this->intermediateTable);
                }
                $this->databaseFacade->createIntermediateTable($this->intermediateTable, $source, $destination);
                $this->databaseFacade->populateIntermediateTable($this->intermediateTable, $source, $destination);
            } else {