diff --git a/scripts/migrate-scheduled-scripts-db.sh b/scripts/migrate-scheduled-scripts-db.sh new file mode 100755 index 0000000..c6aefd3 --- /dev/null +++ b/scripts/migrate-scheduled-scripts-db.sh @@ -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