Loading src/UnicaenDbImport/CodeGenerator/CodeGenerator.php +3 −1 Original line number Diff line number Diff line Loading @@ -345,6 +345,7 @@ abstract class CodeGenerator implements CodeGeneratorInterface { $destinationTable = $destination->getTable(); $idColumnSequence = $destination->getIdColumnSequence(); $idColumnPreserved = $destination->getIdColumnPreserved(); $where = $destination->getWhere(); $sourceCodeColumn = $source->getSourceCodeColumn(); $columns = $source->getColumns(); Loading @@ -359,7 +360,8 @@ abstract class CodeGenerator implements CodeGeneratorInterface $sourceCodeColumn, $columns, $where, $idColumnSequence); $idColumnSequence, $idColumnPreserved); break; case Operation::OPERATION_UPDATE; $sql = $this->tableHelper->generateSQLForUpdateOperationInDestinationTable( Loading src/UnicaenDbImport/CodeGenerator/Helper/TableHelper.php +15 −2 Original line number Diff line number Diff line Loading @@ -316,6 +316,11 @@ EOT; $commaSeparatedColumnNames = implode(', ', $destinationColumns); $commaSeparatedColumnValues = implode(', ', $selectExpressions); // if ($destinationTable === 'carriere_corps') { $commaSeparatedColumnNames .= ',id'; $commaSeparatedColumnValues .= ','.$selectExpressions['ID_ORIG']; // } return <<<EOT INSERT INTO $destinationTable ($commaSeparatedColumnNames) SELECT $commaSeparatedColumnValues Loading @@ -337,7 +342,9 @@ EOT; string $sourceCodeColumn, array $columns, string $where = null, $idColumnSequence = null): string $idColumnSequence = null, $preservedId = null ): string { $diffViewName = $this->generateDiffViewName($destinationTable); $now = $this->platform->getNowExpression(); Loading Loading @@ -380,12 +387,18 @@ EOT; $sourceCodeColumn, 'source_id', ); $idExpr=''; if ($preservedId) { $idExpr = 'cast(ID_ORIG as bigint)'; } else { if ($useSequenceForId) { $idExpr = $this->generateSQLForSequenceNextVal($idColumnSequence); } } array_unshift($selectExpressions, $idExpr, ); } $wheres = null; if ($where) { Loading src/UnicaenDbImport/Domain/Destination.php +5 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,11 @@ class Destination implements DestinationInterface return $this->config->get('id_sequence'); } public function getIdColumnPreserved() { return $this->config->get('preserved_id'); } public function getIntermediateTable(): string { if ($intermediateTable = $this->config->get('intermediate_table')) { Loading src/UnicaenDbImport/Domain/DestinationInterface.php +2 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,8 @@ interface DestinationInterface */ public function getIdColumnSequence(); public function getIdColumnPreserved(); /** * Retourne le nom de la table intermédiaire à créer dans la base de données de destination * lorsque l'utilisation d'une table intermédiaire est nécessaire (cf {@link requiresIntermediateTable}). Loading src/UnicaenDbImport/Service/Database/DatabaseService.php +1 −0 Original line number Diff line number Diff line Loading @@ -424,6 +424,7 @@ class DatabaseService $columnsValues = $this->prepareDestinationData($preparedRow); $insertsSQL = $this->codeGenerator->generateSQLForInsertOneRowIntoTable($tableName, $columnsValues, $sourceCode, $idColumnSequence); // var_dump($insertsSQL); try { $count += $this->queryExecutor->exec($insertsSQL, $this->destination->getConnection()); } catch (Exception $e) { Loading Loading
src/UnicaenDbImport/CodeGenerator/CodeGenerator.php +3 −1 Original line number Diff line number Diff line Loading @@ -345,6 +345,7 @@ abstract class CodeGenerator implements CodeGeneratorInterface { $destinationTable = $destination->getTable(); $idColumnSequence = $destination->getIdColumnSequence(); $idColumnPreserved = $destination->getIdColumnPreserved(); $where = $destination->getWhere(); $sourceCodeColumn = $source->getSourceCodeColumn(); $columns = $source->getColumns(); Loading @@ -359,7 +360,8 @@ abstract class CodeGenerator implements CodeGeneratorInterface $sourceCodeColumn, $columns, $where, $idColumnSequence); $idColumnSequence, $idColumnPreserved); break; case Operation::OPERATION_UPDATE; $sql = $this->tableHelper->generateSQLForUpdateOperationInDestinationTable( Loading
src/UnicaenDbImport/CodeGenerator/Helper/TableHelper.php +15 −2 Original line number Diff line number Diff line Loading @@ -316,6 +316,11 @@ EOT; $commaSeparatedColumnNames = implode(', ', $destinationColumns); $commaSeparatedColumnValues = implode(', ', $selectExpressions); // if ($destinationTable === 'carriere_corps') { $commaSeparatedColumnNames .= ',id'; $commaSeparatedColumnValues .= ','.$selectExpressions['ID_ORIG']; // } return <<<EOT INSERT INTO $destinationTable ($commaSeparatedColumnNames) SELECT $commaSeparatedColumnValues Loading @@ -337,7 +342,9 @@ EOT; string $sourceCodeColumn, array $columns, string $where = null, $idColumnSequence = null): string $idColumnSequence = null, $preservedId = null ): string { $diffViewName = $this->generateDiffViewName($destinationTable); $now = $this->platform->getNowExpression(); Loading Loading @@ -380,12 +387,18 @@ EOT; $sourceCodeColumn, 'source_id', ); $idExpr=''; if ($preservedId) { $idExpr = 'cast(ID_ORIG as bigint)'; } else { if ($useSequenceForId) { $idExpr = $this->generateSQLForSequenceNextVal($idColumnSequence); } } array_unshift($selectExpressions, $idExpr, ); } $wheres = null; if ($where) { Loading
src/UnicaenDbImport/Domain/Destination.php +5 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,11 @@ class Destination implements DestinationInterface return $this->config->get('id_sequence'); } public function getIdColumnPreserved() { return $this->config->get('preserved_id'); } public function getIntermediateTable(): string { if ($intermediateTable = $this->config->get('intermediate_table')) { Loading
src/UnicaenDbImport/Domain/DestinationInterface.php +2 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,8 @@ interface DestinationInterface */ public function getIdColumnSequence(); public function getIdColumnPreserved(); /** * Retourne le nom de la table intermédiaire à créer dans la base de données de destination * lorsque l'utilisation d'une table intermédiaire est nécessaire (cf {@link requiresIntermediateTable}). Loading
src/UnicaenDbImport/Service/Database/DatabaseService.php +1 −0 Original line number Diff line number Diff line Loading @@ -424,6 +424,7 @@ class DatabaseService $columnsValues = $this->prepareDestinationData($preparedRow); $insertsSQL = $this->codeGenerator->generateSQLForInsertOneRowIntoTable($tableName, $columnsValues, $sourceCode, $idColumnSequence); // var_dump($insertsSQL); try { $count += $this->queryExecutor->exec($insertsSQL, $this->destination->getConnection()); } catch (Exception $e) { Loading