From ab11747fab153f7407877ed6465dcc6a60418dd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 11 Jun 2023 00:31:05 +0200 Subject: [PATCH] Fixed issue, that users table were delete while PartKeepr import on certain databases This fixes issue #299 --- src/Doctrine/Purger/ResetAutoIncrementORMPurger.php | 5 +++++ .../ImportExportSystem/PartKeeprImporter/PKImportHelper.php | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Doctrine/Purger/ResetAutoIncrementORMPurger.php b/src/Doctrine/Purger/ResetAutoIncrementORMPurger.php index 58a3522a..a3fdaf1e 100644 --- a/src/Doctrine/Purger/ResetAutoIncrementORMPurger.php +++ b/src/Doctrine/Purger/ResetAutoIncrementORMPurger.php @@ -176,6 +176,11 @@ class ResetAutoIncrementORMPurger implements PurgerInterface, ORMPurgerInterface continue; } + // The table name might be quoted, we have to trim it + // See https://github.com/Part-DB/Part-DB-server/issues/299 + $tbl = trim($tbl, '"'); + $tbl = trim($tbl, '`'); + // If the table is excluded, skip it as well if (in_array($tbl, $this->excluded, true)) { continue; diff --git a/src/Services/ImportExportSystem/PartKeeprImporter/PKImportHelper.php b/src/Services/ImportExportSystem/PartKeeprImporter/PKImportHelper.php index 3a1ae3c4..3709fac2 100644 --- a/src/Services/ImportExportSystem/PartKeeprImporter/PKImportHelper.php +++ b/src/Services/ImportExportSystem/PartKeeprImporter/PKImportHelper.php @@ -43,8 +43,8 @@ class PKImportHelper */ public function purgeDatabaseForImport(): void { - //Versions with "" are needed !! - $purger = new ResetAutoIncrementORMPurger($this->em, ['users', '"users"', 'groups', '"groups"', 'u2f_keys', 'internal', 'migration_versions']); + //We use the ResetAutoIncrementORMPurger to reset the auto increment values of the tables. Also it normalizes table names before checking for exclusion. + $purger = new ResetAutoIncrementORMPurger($this->em, ['users', 'groups', 'u2f_keys', 'internal', 'migration_versions']); $purger->purge(); }