mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2025-12-30 00:53:50 +00:00
Efficiency enhancement for upgrade and upgrade_schema by running global tasks one time rather than for each domain.
This commit is contained in:
@@ -24,129 +24,131 @@
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
*/
|
||||
|
||||
//set the database driver
|
||||
$sql = "select * from v_databases ";
|
||||
$sql .= "where database_driver is null ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($result as &$row) {
|
||||
$database_uuid = $row["database_uuid"];
|
||||
$database_type = $row["database_type"];
|
||||
$database_type_array = explode(":", $database_type);
|
||||
if ($database_type_array[0] == "odbc") {
|
||||
$database_driver = $database_type_array[1];
|
||||
}
|
||||
else {
|
||||
$database_driver = $database_type_array[0];
|
||||
}
|
||||
$sql = "update v_databases set ";
|
||||
$sql .= "database_driver = '$database_driver' ";
|
||||
$sql .= "where database_uuid = '$database_uuid' ";
|
||||
$db->exec(check_sql($sql));
|
||||
unset($sql);
|
||||
}
|
||||
|
||||
if (strlen($_SESSION['switch']['scripts']['dir']) > 0) {
|
||||
|
||||
//get the odbc information
|
||||
$sql = "select count(*) as num_rows from v_databases ";
|
||||
$sql .= "where database_driver = 'odbc' ";
|
||||
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
|
||||
$prep_statement = $db->prepare($sql);
|
||||
if ($prep_statement) {
|
||||
$prep_statement->execute();
|
||||
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
|
||||
if ($row['num_rows'] > 0) {
|
||||
$odbc_num_rows = $row['num_rows'];
|
||||
|
||||
$sql = "select * from v_databases ";
|
||||
$sql .= "where database_driver = 'odbc' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($result as &$row) {
|
||||
$dsn_name = $row["database_name"];
|
||||
$dsn_username = $row["database_username"];
|
||||
$dsn_password = $row["database_password"];
|
||||
break; //limit to 1 row
|
||||
}
|
||||
unset ($prep_statement);
|
||||
//proccess this only one time
|
||||
if ($domains_processed == 1) {
|
||||
//set the database driver
|
||||
$sql = "select * from v_databases ";
|
||||
$sql .= "where database_driver is null ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($result as &$row) {
|
||||
$database_uuid = $row["database_uuid"];
|
||||
$database_type = $row["database_type"];
|
||||
$database_type_array = explode(":", $database_type);
|
||||
if ($database_type_array[0] == "odbc") {
|
||||
$database_driver = $database_type_array[1];
|
||||
}
|
||||
else {
|
||||
$odbc_num_rows = '0';
|
||||
$database_driver = $database_type_array[0];
|
||||
}
|
||||
$sql = "update v_databases set ";
|
||||
$sql .= "database_driver = '$database_driver' ";
|
||||
$sql .= "where database_uuid = '$database_uuid' ";
|
||||
$db->exec(check_sql($sql));
|
||||
unset($sql);
|
||||
}
|
||||
|
||||
//config.lua
|
||||
$fout = fopen($_SESSION['switch']['scripts']['dir']."/resources/config.lua","w");
|
||||
$tmp = "\n";
|
||||
$tmp .= "--switch directories\n";
|
||||
if (strlen($_SESSION['switch']['sounds']['dir']) > 0) {
|
||||
$tmp .= " sounds_dir = \"".$_SESSION['switch']['sounds']['dir']."\";\n";
|
||||
}
|
||||
if (strlen($_SESSION['switch']['recordings']['dir']) > 0) {
|
||||
$tmp .= " recordings_dir = \"".$_SESSION['switch']['recordings']['dir']."\";\n";
|
||||
}
|
||||
$tmp .= "\n";
|
||||
$tmp .= "--database connection info\n";
|
||||
if (strlen($db_type) > 0) {
|
||||
$tmp .= " db_type = \"".$db_type."\";\n";
|
||||
}
|
||||
if (strlen($db_name) > 0) {
|
||||
$tmp .= " db_name = \"".$db_name."\";\n";
|
||||
}
|
||||
if (strlen($db_path) > 0) {
|
||||
$tmp .= " db_path = \"".$db_path."\";\n";
|
||||
}
|
||||
if (strlen($dsn_name) > 0) {
|
||||
$tmp .= " dsn_name = \"".$dsn_name."\";\n";
|
||||
}
|
||||
if (strlen($dsn_username) > 0) {
|
||||
$tmp .= " dsn_username = \"".$dsn_username."\";\n";
|
||||
}
|
||||
if (strlen($dsn_password) > 0) {
|
||||
$tmp .= " dsn_password = \"".$dsn_password."\";\n";
|
||||
}
|
||||
$tmp .= "\n";
|
||||
$tmp .= "--additional info\n";
|
||||
$tmp .= " tmp_dir = \"".$tmp_dir."\";\n";
|
||||
fwrite($fout, $tmp);
|
||||
unset($tmp);
|
||||
fclose($fout);
|
||||
if (strlen($_SESSION['switch']['scripts']['dir']) > 0) {
|
||||
//get the odbc information
|
||||
$sql = "select count(*) as num_rows from v_databases ";
|
||||
$sql .= "where database_driver = 'odbc' ";
|
||||
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
|
||||
$prep_statement = $db->prepare($sql);
|
||||
if ($prep_statement) {
|
||||
$prep_statement->execute();
|
||||
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
|
||||
if ($row['num_rows'] > 0) {
|
||||
$odbc_num_rows = $row['num_rows'];
|
||||
|
||||
//config.js
|
||||
$fout = fopen($_SESSION['switch']['scripts']['dir']."/resources/config.js","w");
|
||||
$tmp = "\n";
|
||||
$tmp .= "//switch directories\n";
|
||||
$tmp .= " var admin_pin = \"".$row["admin_pin"]."\";\n";
|
||||
$tmp .= " var sounds_dir = \"".$_SESSION['switch']['sounds']['dir']."\";\n";
|
||||
$tmp .= " var recordings_dir = \"".$_SESSION['switch']['recordings']['dir']."\";\n";
|
||||
$tmp .= "\n";
|
||||
$tmp = "//database connection info\n";
|
||||
if (strlen($db_type) > 0) {
|
||||
$tmp .= " var db_type = \"".$db_type."\";\n";
|
||||
}
|
||||
if (strlen($db_name) > 0) {
|
||||
$tmp .= " var db_name = \"".$db_name."\";\n";
|
||||
}
|
||||
if (strlen($db_path) > 0) {
|
||||
$tmp .= " var db_path = \"".$db_path."\";\n";
|
||||
}
|
||||
if (strlen($dsn_name) > 0) {
|
||||
$tmp .= " var dsn_name = \"".$dsn_name."\";\n";
|
||||
}
|
||||
if (strlen($dsn_username) > 0) {
|
||||
$tmp .= " var dsn_username = \"".$dsn_username."\";\n";
|
||||
}
|
||||
if (strlen($dsn_password) > 0) {
|
||||
$tmp .= " var dsn_password = \"".$dsn_password."\";\n";
|
||||
}
|
||||
$tmp .= "\n";
|
||||
$tmp .= "//additional info\n";
|
||||
$tmp .= " var tmp_dir = \"".$tmp_dir."\";\n";
|
||||
fwrite($fout, $tmp);
|
||||
unset($tmp);
|
||||
fclose($fout);
|
||||
$sql = "select * from v_databases ";
|
||||
$sql .= "where database_driver = 'odbc' ";
|
||||
$prep_statement = $db->prepare(check_sql($sql));
|
||||
$prep_statement->execute();
|
||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||
foreach ($result as &$row) {
|
||||
$dsn_name = $row["database_name"];
|
||||
$dsn_username = $row["database_username"];
|
||||
$dsn_password = $row["database_password"];
|
||||
break; //limit to 1 row
|
||||
}
|
||||
unset ($prep_statement);
|
||||
}
|
||||
else {
|
||||
$odbc_num_rows = '0';
|
||||
}
|
||||
}
|
||||
|
||||
//config.lua
|
||||
$fout = fopen($_SESSION['switch']['scripts']['dir']."/resources/config.lua","w");
|
||||
$tmp = "\n";
|
||||
$tmp .= "--switch directories\n";
|
||||
if (strlen($_SESSION['switch']['sounds']['dir']) > 0) {
|
||||
$tmp .= " sounds_dir = \"".$_SESSION['switch']['sounds']['dir']."\";\n";
|
||||
}
|
||||
if (strlen($_SESSION['switch']['recordings']['dir']) > 0) {
|
||||
$tmp .= " recordings_dir = \"".$_SESSION['switch']['recordings']['dir']."\";\n";
|
||||
}
|
||||
$tmp .= "\n";
|
||||
$tmp .= "--database connection info\n";
|
||||
if (strlen($db_type) > 0) {
|
||||
$tmp .= " db_type = \"".$db_type."\";\n";
|
||||
}
|
||||
if (strlen($db_name) > 0) {
|
||||
$tmp .= " db_name = \"".$db_name."\";\n";
|
||||
}
|
||||
if (strlen($db_path) > 0) {
|
||||
$tmp .= " db_path = \"".$db_path."\";\n";
|
||||
}
|
||||
if (strlen($dsn_name) > 0) {
|
||||
$tmp .= " dsn_name = \"".$dsn_name."\";\n";
|
||||
}
|
||||
if (strlen($dsn_username) > 0) {
|
||||
$tmp .= " dsn_username = \"".$dsn_username."\";\n";
|
||||
}
|
||||
if (strlen($dsn_password) > 0) {
|
||||
$tmp .= " dsn_password = \"".$dsn_password."\";\n";
|
||||
}
|
||||
$tmp .= "\n";
|
||||
$tmp .= "--additional info\n";
|
||||
$tmp .= " tmp_dir = \"".$tmp_dir."\";\n";
|
||||
fwrite($fout, $tmp);
|
||||
unset($tmp);
|
||||
fclose($fout);
|
||||
|
||||
//config.js
|
||||
$fout = fopen($_SESSION['switch']['scripts']['dir']."/resources/config.js","w");
|
||||
$tmp = "\n";
|
||||
$tmp .= "//switch directories\n";
|
||||
$tmp .= " var admin_pin = \"".$row["admin_pin"]."\";\n";
|
||||
$tmp .= " var sounds_dir = \"".$_SESSION['switch']['sounds']['dir']."\";\n";
|
||||
$tmp .= " var recordings_dir = \"".$_SESSION['switch']['recordings']['dir']."\";\n";
|
||||
$tmp .= "\n";
|
||||
$tmp = "//database connection info\n";
|
||||
if (strlen($db_type) > 0) {
|
||||
$tmp .= " var db_type = \"".$db_type."\";\n";
|
||||
}
|
||||
if (strlen($db_name) > 0) {
|
||||
$tmp .= " var db_name = \"".$db_name."\";\n";
|
||||
}
|
||||
if (strlen($db_path) > 0) {
|
||||
$tmp .= " var db_path = \"".$db_path."\";\n";
|
||||
}
|
||||
if (strlen($dsn_name) > 0) {
|
||||
$tmp .= " var dsn_name = \"".$dsn_name."\";\n";
|
||||
}
|
||||
if (strlen($dsn_username) > 0) {
|
||||
$tmp .= " var dsn_username = \"".$dsn_username."\";\n";
|
||||
}
|
||||
if (strlen($dsn_password) > 0) {
|
||||
$tmp .= " var dsn_password = \"".$dsn_password."\";\n";
|
||||
}
|
||||
$tmp .= "\n";
|
||||
$tmp .= "//additional info\n";
|
||||
$tmp .= " var tmp_dir = \"".$tmp_dir."\";\n";
|
||||
fwrite($fout, $tmp);
|
||||
unset($tmp);
|
||||
fclose($fout);
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user