From 1c0e522d98d0e7616d2d378974100c1e4d7a877f Mon Sep 17 00:00:00 2001 From: norahmollo Date: Thu, 30 Oct 2014 17:32:31 -0400 Subject: [PATCH] PM-697 Restore con diferente numero de BD Validacion para el restore con la opcion overwrite --- workflow/engine/classes/class.wsTools.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index b0f5e7904..dd29d4103 100755 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -1462,8 +1462,10 @@ class workspaceTools if (strpos($metadata->DB_RBAC_NAME, 'rb_') === false) { $onedb = true; + $oldDatabases = 1; } else { $onedb = false; + $oldDatabases = 3; } if (isset($dstWorkspace)) { @@ -1484,6 +1486,16 @@ class workspaceTools if ($workspace->workspaceExists()) { if ($overwrite) { + $overwriteSite = new workspaceTools($dstWorkspace); + if ($overwriteSite->dbInfo['DB_NAME'] == $overwriteSite->dbInfo['DB_RBAC_NAME']) { + $newDatabases = 1; + } else { + $newDatabases = 3; + } + + if ($newDatabases != $oldDatabases) { + throw new Exception("We can't overwrite this workspace because it has a different amount of databases. Not only the 'source' but also the 'target' must have the same amount of databases."); + } CLI::logging(CLI::warning("> Workspace $workspaceName already exist, overwriting!") . "\n"); } else { throw new Exception("Destination workspace already exist (use -o to overwrite)");