mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Install: Validate database before migrating (#12867)
* Validate database during install Needed to remove usages of legacy functions in the validation * Fix output, restore real versions
This commit is contained in:
@@ -30,6 +30,8 @@ use Illuminate\Support\Arr;
|
||||
use LibreNMS\DB\Eloquent;
|
||||
use LibreNMS\DB\Schema;
|
||||
use LibreNMS\Interfaces\InstallerStep;
|
||||
use LibreNMS\ValidationResult;
|
||||
use LibreNMS\Validator;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
|
||||
class DatabaseController extends InstallationController implements InstallerStep
|
||||
@@ -66,17 +68,30 @@ class DatabaseController extends InstallationController implements InstallerStep
|
||||
session()->forget('install.database'); // reset db complete status
|
||||
|
||||
$ok = false;
|
||||
$message = '';
|
||||
$messages = [];
|
||||
try {
|
||||
$conn = Eloquent::DB('setup');
|
||||
$ok = $conn && ! is_null($conn->getPdo());
|
||||
|
||||
// validate Database
|
||||
$validator = new Validator();
|
||||
$validator->validate(['database']);
|
||||
$results = $validator->getResults('database');
|
||||
|
||||
/** @var \LibreNMS\ValidationResult $result */
|
||||
foreach ($results as $result) {
|
||||
if ($result->getStatus() == ValidationResult::FAILURE) {
|
||||
$ok = false;
|
||||
$messages[] = $result->getMessage();
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
$messages[] = $e->getMessage();
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'result' => $ok ? 'ok' : 'fail',
|
||||
'message' => $message,
|
||||
'message' => implode('<br />', $messages),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user