Skip to content
Snippets Groups Projects
Verified Commit 54ab39c9 authored by Damien's avatar Damien
Browse files

FEAT #14249 TIME 0:20 Minor sql update

parent cc11685b
No related branches found
No related tags found
No related merge requests found
......@@ -19,6 +19,7 @@ use Group\controllers\PrivilegeController;
use Slim\Http\Request;
use Slim\Http\Response;
use SrcCore\models\CoreConfigModel;
use SrcCore\models\DatabaseModel;
class VersionUpdateController
{
......@@ -155,6 +156,24 @@ class VersionUpdateController
return $response->withStatus(400)->withJson(['errors' => 'Some files are modified. Can not update application', 'lang' => 'canNotUpdateApplication']);
}
$minorVersions = explode('.', $minorVersion);
$currentVersionTag = (int)$currentVersionTag;
$currentVersionTag++;
$sqlFiles = [];
while ($currentVersionTag <= (int)$minorVersions[2]) {
if (is_file("migration/{$versions[0]}.{$versions[1]}/{$versions[0]}{$versions[1]}{$currentVersionTag}.sql")) {
$sqlFiles[] = "migration/{$versions[0]}.{$versions[1]}/{$versions[0]}{$versions[1]}{$currentVersionTag}.sql";
}
$currentVersionTag++;
}
if (!empty($sqlFiles)) {
foreach ($sqlFiles as $sqlFile) {
$fileContent = file_get_contents($sqlFile);
DatabaseModel::exec($fileContent);
}
}
$output = [];
exec('git fetch');
exec("git checkout {$minorVersion} 2>&1", $output, $returnCode);
......
......@@ -317,6 +317,20 @@ class DatabaseModel
return $db->rollbackTransaction();
}
/**
* Database Exec Function
* @param string $query
*
* @return bool
* @throws \Exception
*/
public static function exec(string $query)
{
$db = new DatabasePDO();
return $db->exec($query);
}
/**
* Database Select column_name
* @param array $args
......
......@@ -170,6 +170,22 @@ class DatabasePDO
return $query;
}
public function exec(string $query)
{
try {
self::$pdo->exec($query);
} catch (\PDOException $PDOException) {
$file = fopen('queries_error.log', 'a');
fwrite($file, '[' . date('Y-m-d H:i:s') . '] ' . $query . PHP_EOL);
fwrite($file, '[' . date('Y-m-d H:i:s') . "] [{$PDOException->getMessage()}]" . PHP_EOL);
fclose($file);
throw new \Exception($PDOException->getMessage());
}
return true;
}
public function setLimit(array $args)
{
ValidatorModel::notEmpty($args, ['limit']);
......@@ -216,9 +232,4 @@ class DatabasePDO
{
return self::$pdo->rollBack();
}
public function pgsqlCopyFromArray(string $table_name, array $rows, string $delimiter = '\t', string $null_as = "\\\\N", string $fields)
{
return self::$pdo->pgsqlCopyFromArray($table_name, $rows, $delimiter, $null_as, $fields);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment