diff --git a/src/Extension/FluentVersionedExtension.php b/src/Extension/FluentVersionedExtension.php index 65ca59fa..a8306aba 100644 --- a/src/Extension/FluentVersionedExtension.php +++ b/src/Extension/FluentVersionedExtension.php @@ -1044,8 +1044,11 @@ public function onAfterDuplicate($original, $doWrite, $relations): void // Remove existing versions from duplicated object, created by onBeforeWrite DB::prepared_query("DELETE FROM \"$versionsTableName\" WHERE \"RecordID\" = ?", [$toID]); + // Dynamicaly select the current database, which will be a temporary database in case of unit tests + $currentDB = DB::query('SELECT DATABASE() as DB')->column('DB')[0]; + // Copy all versions of base record, todo: optimize to only copy needed versions - $fields = DB::query("SELECT \"COLUMN_NAME\" FROM \"INFORMATION_SCHEMA\".\"COLUMNS\" WHERE \"TABLE_NAME\" = '$versionsTableName' AND \"COLUMN_NAME\" NOT IN('ID','RecordID')"); + $fields = DB::query("SELECT \"COLUMN_NAME\" FROM \"INFORMATION_SCHEMA\".\"COLUMNS\" WHERE \"TABLE_SCHEMA\" = '$currentDB' AND \"TABLE_NAME\" = '$versionsTableName' AND \"COLUMN_NAME\" NOT IN('ID','RecordID')"); $fields_str = '"' . implode('","', $fields->column()) . '"'; DB::prepared_query("INSERT INTO \"$versionsTableName\" ( \"RecordID\", $fields_str) SELECT ? AS \"RecordID\", $fields_str