runUpdate($version);
$message = $result['message'];
$messageType = 'success';
} catch (Exception $e) {
$message = $e->getMessage();
$messageType = 'danger';
}
}
// ყველა განახლების გაშვება
if ($_POST['action'] ?? '' === 'run_all_updates') {
try {
$results = $updateManager->runAllUpdates();
$messages = [];
foreach ($results as $result) {
$messages[] = $result['message'];
}
$message = implode('
', $messages);
$messageType = 'success';
} catch (Exception $e) {
$message = $e->getMessage();
$messageType = 'danger';
}
}
// ახალი მიგრაციის შექმნა
if ($_POST['action'] ?? '' === 'create_migration') {
$version = $_POST['new_version'] ?? '';
$description = $_POST['description'] ?? '';
$upSql = $_POST['up_sql'] ?? '';
$downSql = $_POST['down_sql'] ?? '';
// ვალიდაცია
if (empty($version) || empty($description) || empty($upSql)) {
$message = "გთხოვთ შეავსოთ ყველა სავალდებულო ველი.";
$messageType = 'danger';
} elseif (!preg_match('/^\d+\.\d+\.\d+$/', $version)) {
$message = "ვერსია უნდა იყოს X.Y.Z ფორმატში (მაგ: 1.0.3)";
$messageType = 'danger';
} else {
try {
// შევამოწმოთ არ არსებობს თუ არა უკვე ასეთი ვერსია
$existingUpdates = $updateManager->getAvailableUpdates();
foreach ($existingUpdates as $update) {
if ($update['version'] === $version) {
throw new Exception("ვერსია $version უკვე არსებობს");
}
}
// შევამოწმოთ ვერსიების ისტორიაში
$history = $updateManager->getUpdateHistory();
foreach ($history as $record) {
if ($record['version'] === $version) {
throw new Exception("ვერსია $version უკვე გამოყენებულია");
}
}
$result = $updateManager->createMigration($version, $description, $upSql, $downSql);
$message = $result['message'];
$messageType = 'success';
} catch (Exception $e) {
$message = "შეცდომა: " . $e->getMessage();
$messageType = 'danger';
}
}
}
$currentVersion = $updateManager->getCurrentVersion();
$availableUpdates = $updateManager->getAvailableUpdates();
$updateHistory = $updateManager->getUpdateHistory();
?>
ახალი განახლებები ხელმისაწვდომი არ არის.
განახლებების ისტორია ცარიელია.
| ვერსია | აღწერა | სტატუსი | თარიღი |
|---|---|---|---|
| = htmlspecialchars($history['version']) ?> | = htmlspecialchars($history['description']) ?> | 'success', 'failed' => 'danger', 'pending' => 'warning' ]; $statusText = [ 'completed' => 'დასრულებული', 'failed' => 'ვერ შესრულდა', 'pending' => 'მუშავდება' ]; ?> = $statusText[$history['status']] ?> | = date('Y-m-d H:i', strtotime($history['executed_at'])) ?> |