aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/Command/Db/ConvertType.php40
1 files changed, 25 insertions, 15 deletions
diff --git a/core/Command/Db/ConvertType.php b/core/Command/Db/ConvertType.php
index 27f3147b81d..754cbd08812 100644
--- a/core/Command/Db/ConvertType.php
+++ b/core/Command/Db/ConvertType.php
@@ -353,27 +353,37 @@ class ConvertType extends Command implements CompletionAwareInterface {
$result = $query->execute();
- while ($row = $result->fetch()) {
- $progress->advance();
- if (!$parametersCreated) {
- foreach ($row as $key => $value) {
- $insertQuery->setValue($key, $insertQuery->createParameter($key));
+ try {
+ $toDB->beginTransaction();
+
+ while ($row = $result->fetch()) {
+ $progress->advance();
+ if (!$parametersCreated) {
+ foreach ($row as $key => $value) {
+ $insertQuery->setValue($key, $insertQuery->createParameter($key));
+ }
+ $parametersCreated = true;
}
- $parametersCreated = true;
- }
- foreach ($row as $key => $value) {
- $type = $this->getColumnType($table, $key);
- if ($type !== false) {
- $insertQuery->setParameter($key, $value, $type);
- } else {
- $insertQuery->setParameter($key, $value);
+ foreach ($row as $key => $value) {
+ $type = $this->getColumnType($table, $key);
+ if ($type !== false) {
+ $insertQuery->setParameter($key, $value, $type);
+ } else {
+ $insertQuery->setParameter($key, $value);
+ }
}
+ $insertQuery->execute();
}
- $insertQuery->execute();
+ $result->closeCursor();
+
+ $toDB->commit();
+ } catch (\Throwable $e) {
+ $toDB->rollBack();
+ throw $e;
}
- $result->closeCursor();
}
+
$progress->finish();
$output->writeln('');
}