Files
lightOps/migrations/0002_applications.sql

71 lines
2.4 KiB
SQL

CREATE TABLE IF NOT EXISTS applications (
id TEXT PRIMARY KEY,
agent_id TEXT NOT NULL,
name TEXT NOT NULL,
display_name TEXT NOT NULL,
description TEXT,
app_type TEXT NOT NULL,
provider TEXT NOT NULL,
status TEXT NOT NULL,
version TEXT,
install_path TEXT,
work_dir TEXT,
config_paths_json TEXT NOT NULL DEFAULT '[]',
log_paths_json TEXT NOT NULL DEFAULT '[]',
data_paths_json TEXT NOT NULL DEFAULT '[]',
ports_json TEXT NOT NULL DEFAULT '[]',
domains_json TEXT NOT NULL DEFAULT '[]',
service_name TEXT,
container_id TEXT,
compose_project TEXT,
package_name TEXT,
nginx_site TEXT,
run_user TEXT,
is_system INTEGER NOT NULL DEFAULT 0,
is_managed INTEGER NOT NULL DEFAULT 0,
is_lightops_managed INTEGER NOT NULL DEFAULT 0,
metadata_json TEXT NOT NULL DEFAULT '{}',
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
FOREIGN KEY(agent_id) REFERENCES agents(id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_applications_agent ON applications(agent_id);
CREATE INDEX IF NOT EXISTS idx_applications_provider ON applications(provider);
CREATE INDEX IF NOT EXISTS idx_applications_status ON applications(status);
CREATE TABLE IF NOT EXISTS application_relations (
id TEXT PRIMARY KEY,
agent_id TEXT NOT NULL,
app_id TEXT NOT NULL,
relation_type TEXT NOT NULL,
target_id TEXT,
target_name TEXT,
metadata_json TEXT NOT NULL DEFAULT '{}',
created_at TEXT NOT NULL,
FOREIGN KEY(agent_id) REFERENCES agents(id) ON DELETE CASCADE,
FOREIGN KEY(app_id) REFERENCES applications(id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_application_relations_app ON application_relations(app_id);
CREATE TABLE IF NOT EXISTS application_actions (
id TEXT PRIMARY KEY,
agent_id TEXT NOT NULL,
app_id TEXT,
user_id TEXT,
action TEXT NOT NULL,
status TEXT NOT NULL,
params_json TEXT,
result_json TEXT,
error TEXT,
created_at TEXT NOT NULL,
finished_at TEXT,
FOREIGN KEY(agent_id) REFERENCES agents(id) ON DELETE CASCADE,
FOREIGN KEY(app_id) REFERENCES applications(id) ON DELETE SET NULL
);
CREATE INDEX IF NOT EXISTS idx_application_actions_app_created ON application_actions(app_id, created_at DESC);
CREATE INDEX IF NOT EXISTS idx_application_actions_agent_created ON application_actions(agent_id, created_at DESC);