This commit is contained in:
2026-03-07 23:58:40 +01:00
parent 766eab12e7
commit 12c2ce4817
10 changed files with 652 additions and 96 deletions

View File

@@ -64,6 +64,7 @@ $mm->registerFunction($moduleName, 'ensure_schema', function () use ($moduleName
auth_type VARCHAR(20) NOT NULL DEFAULT 'key',
key_path TEXT NULL,
password TEXT NULL,
image_url TEXT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
)");
$pdo->exec("CREATE TABLE IF NOT EXISTS {$cmdTable} (
@@ -72,6 +73,7 @@ $mm->registerFunction($moduleName, 'ensure_schema', function () use ($moduleName
command TEXT NOT NULL,
admin_only BOOLEAN NOT NULL DEFAULT false,
timeout_sec INTEGER NULL,
sort_order INTEGER NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
)");
$pdo->exec("CREATE TABLE IF NOT EXISTS {$runTable} (
@@ -110,6 +112,7 @@ $mm->registerFunction($moduleName, 'ensure_schema', function () use ($moduleName
auth_type VARCHAR(20) NOT NULL DEFAULT 'key',
key_path TEXT NULL,
password TEXT NULL,
image_url TEXT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
)");
$pdo->exec("CREATE TABLE IF NOT EXISTS {$cmdTable} (
@@ -118,6 +121,7 @@ $mm->registerFunction($moduleName, 'ensure_schema', function () use ($moduleName
command TEXT NOT NULL,
admin_only INTEGER NOT NULL DEFAULT 0,
timeout_sec INTEGER NULL,
sort_order INTEGER NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
)");
$pdo->exec("CREATE TABLE IF NOT EXISTS {$runTable} (
@@ -150,7 +154,9 @@ $mm->registerFunction($moduleName, 'ensure_schema', function () use ($moduleName
// Schema migrations for existing tables
if ($driver === 'pgsql') {
$pdo->exec("ALTER TABLE {$hostTable} ADD COLUMN IF NOT EXISTS image_url TEXT NULL");
$pdo->exec("ALTER TABLE {$cmdTable} ADD COLUMN IF NOT EXISTS timeout_sec INTEGER NULL");
$pdo->exec("ALTER TABLE {$cmdTable} ADD COLUMN IF NOT EXISTS sort_order INTEGER NULL");
$pdo->exec("ALTER TABLE {$runTable} ADD COLUMN IF NOT EXISTS error TEXT NULL");
$pdo->exec("ALTER TABLE {$runTable} ADD COLUMN IF NOT EXISTS exit_code INTEGER NULL");
$pdo->exec("ALTER TABLE {$runTable} ADD COLUMN IF NOT EXISTS timeout_sec INTEGER NULL");
@@ -158,6 +164,15 @@ $mm->registerFunction($moduleName, 'ensure_schema', function () use ($moduleName
$pdo->exec("ALTER TABLE {$runTable} ADD COLUMN IF NOT EXISTS finished_at TIMESTAMP NULL");
$pdo->exec("ALTER TABLE {$sessionTable} ADD COLUMN IF NOT EXISTS command_text TEXT NULL");
} else {
$columns = [];
$stmt = $pdo->query('PRAGMA table_info(' . $hostTable . ')');
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $col) {
$columns[$col['name']] = true;
}
if (empty($columns['image_url'])) {
$pdo->exec("ALTER TABLE {$hostTable} ADD COLUMN image_url TEXT NULL");
}
$columns = [];
$stmt = $pdo->query('PRAGMA table_info(' . $cmdTable . ')');
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $col) {
@@ -166,6 +181,9 @@ $mm->registerFunction($moduleName, 'ensure_schema', function () use ($moduleName
if (empty($columns['timeout_sec'])) {
$pdo->exec("ALTER TABLE {$cmdTable} ADD COLUMN timeout_sec INTEGER NULL");
}
if (empty($columns['sort_order'])) {
$pdo->exec("ALTER TABLE {$cmdTable} ADD COLUMN sort_order INTEGER NULL");
}
$columns = [];
$stmt = $pdo->query('PRAGMA table_info(' . $runTable . ')');