Add scheduled scripts database migration
This commit is contained in:
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
DB_FILE="/opt/appfactory/data/appfactory/appfactory.db"
|
||||
|
||||
python3 - "$DB_FILE" <<'PY'
|
||||
import sqlite3
|
||||
import sys
|
||||
|
||||
con = sqlite3.connect(sys.argv[1])
|
||||
|
||||
con.execute("""
|
||||
CREATE TABLE IF NOT EXISTS scheduled_scripts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT,
|
||||
script_name TEXT NOT NULL,
|
||||
schedule_type TEXT NOT NULL,
|
||||
schedule_time TEXT,
|
||||
timeout_seconds INTEGER NOT NULL DEFAULT 300,
|
||||
|
||||
is_enabled INTEGER NOT NULL DEFAULT 1,
|
||||
is_running INTEGER NOT NULL DEFAULT 0,
|
||||
|
||||
last_run_at TEXT,
|
||||
last_status TEXT,
|
||||
last_job_id INTEGER,
|
||||
last_error_text TEXT,
|
||||
|
||||
next_run_at TEXT,
|
||||
|
||||
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
)
|
||||
""")
|
||||
|
||||
con.execute("""
|
||||
CREATE INDEX IF NOT EXISTS idx_scheduled_scripts_next_run
|
||||
ON scheduled_scripts(is_enabled, next_run_at)
|
||||
""")
|
||||
|
||||
con.execute("""
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_scheduled_scripts_script_name
|
||||
ON scheduled_scripts(script_name)
|
||||
""")
|
||||
|
||||
con.commit()
|
||||
con.close()
|
||||
|
||||
print("Scheduled scripts migration completed.")
|
||||
PY
|
||||
Reference in New Issue
Block a user