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

[FIX] Import : seules les données issues de la source concernée doivent être...

[FIX] Import : seules les données issues de la source concernée doivent être préalablement purgées, pas toute la table.
parent a8724003
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
Changelog
=========

5.1.1
-----
- [FIX] Import : seules les données issues de la source concernée doivent être préalablement purgées, pas toute la table. 

5.1.0
-----
- Import : le SOURCE_ID peut être fourni dans les données à importer ou en dur dans la config via l'attribut 'code' de la 'source' ; 
+11 −0
Original line number Diff line number Diff line
@@ -344,7 +344,18 @@ class DatabaseService
     */
    public function truncateDestinationTable()
    {
        // détermination de l'id de la source des données à insérer, pour n'effacer que les données de cette source
        // (si aucune donnée à insérer, basta)
        $data = $this->source->getData();
        if (empty($data)) {
            return;
        }
        $row1 = reset($data);
        $preparedRow1 = $this->prepareSourceData($row1);
        $sourceId = $preparedRow1['source_id'] ?? $preparedRow1['SOURCE_ID'];

        $sql = $this->codeGenerator->generateSQLForClearTable($table = $this->destination->getTable());
        $sql .= " WHERE source_id = (SELECT id FROM source WHERE code = '$sourceId')";
        try {
            $this->queryExecutor->exec($sql, $this->destination->getConnection());
        } catch (Exception $e) {