PM-401 Unify-Database

Unify Database and Restore changes
This commit is contained in:
norahmollo
2014-10-09 10:36:34 -04:00
parent 5b7a1a3572
commit e17c28adf8
3 changed files with 81 additions and 52 deletions

View File

@@ -197,8 +197,18 @@ function listFiles($dir) {
function run_unify_database($args)
{
$workspaces = get_workspaces_from_args($args);
$workspaces = array();
if (sizeof($args) > 2) {
$filename = array_pop($args);
foreach ($args as $arg) {
$workspaces[] = new workspaceTools($arg);
}
} else if (sizeof($args) > 0) {
$workspace = new workspaceTools($args[0]);
$workspaces[] = $workspace;
}
CLI::logging("UPGRADE", PROCESSMAKER_PATH . "upgrade.log");
CLI::logging("Checking workspaces...\n");
//setting flag to true to check into sysGeneric.php
@@ -214,23 +224,6 @@ function run_unify_database($args)
}
}
foreach ($workspaces as $workspace) {
if (! $workspace->workspaceExists()) {
echo "Workspace {$workspace->name} not found\n";
return false;
}
$ws = $workspace->name;
$sContent = file_get_contents (PATH_DB . $ws . PATH_SEP . 'db.php');
if (strpos($sContent, 'rb_')) {
$workspace->onedb = false;
} else {
$workspace->onedb = true;
}
}
$first = true;
$errors = false;
$countWorkspace = 0;
@@ -240,6 +233,20 @@ function run_unify_database($args)
try {
$countWorkspace++;
if (! $workspace->workspaceExists()) {
echo "Workspace {$workspace->name} not found\n";
return false;
}
$ws = $workspace->name;
$sContent = file_get_contents (PATH_DB . $ws . PATH_SEP . 'db.php');
if (strpos($sContent, 'rb_')) {
$workspace->onedb = false;
} else {
$workspace->onedb = true;
}
if ($workspace->onedb) {
CLI::logging("Workspace $workspace->name already one Database...\n");
} else {
@@ -262,23 +269,28 @@ function run_unify_database($args)
list ($dbHost, $dbUser, $dbPass) = @explode( SYSTEM_HASH, G::decrypt( HASH_INSTALLATION, SYSTEM_HASH ) );
$link = mysql_connect( $dbHost, $dbUser, $dbPass );
foreach ($metadata->databases as $db) {
foreach ($metadata['databases'] as $db) {
$dbName = 'wf_'.$workspace->name;
CLI::logging( "+> Restoring {$db->name} to $dbName database\n" );
$restore = $workspace->executeSQLScript( $dbName, "$tempDirectory/{$db->name}.sql" );
CLI::logging( "+> Remove {$db->name} database\n" );
CLI::logging( "+> Restoring {$db['name']} to $dbName database\n" );
$sql = "DROP DATABASE IF EXISTS {$db->name};";
if (! @mysql_query( $sql )) {
throw new Exception( mysql_error() );
$aParameters = array('dbHost'=>$dbHost,'dbUser'=>$dbUser,'dbPass'=>$dbPass);
$restore = $workspace->executeScript( $dbName, "$tempDirectory/{$db['name']}.sql", $aParameters);
if ($restore) {
CLI::logging( "+> Remove {$db['name']} database\n" );
$sql = "DROP DATABASE IF EXISTS {$db['name']};";
if (! @mysql_query( $sql )) {
throw new Exception( mysql_error() );
}
}
}
CLI::logging( "Removing temporary files\n" );
G::rm_dir( $tempDirectory );
$newDBNames = $workspace->resetDBInfo( $dbHost, true );
$newDBNames = $workspace->resetDBInfo( $dbHost, true, true );
CLI::logging( CLI::info( "Done restoring databases" ) . "\n" );
}