Add multi-database data layer

Introduce aether-data-schema and driver-specific schema generation for Postgres, MySQL, and SQLite.

Split data backends, lifecycle, repositories, and gateway runtime integration across database drivers.

Verified with cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings, and cargo test --workspace.
This commit is contained in:
fawney19
2026-05-05 18:27:36 +08:00
parent 099653f732
commit fce7e959e5
372 changed files with 86217 additions and 21160 deletions

View File

@@ -0,0 +1,40 @@
CREATE TABLE IF NOT EXISTS proxy_nodes (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
ip TEXT NOT NULL,
port INTEGER NOT NULL,
region TEXT,
status TEXT NOT NULL DEFAULT 'online',
registered_by TEXT,
last_heartbeat_at INTEGER,
heartbeat_interval INTEGER NOT NULL DEFAULT 30,
active_connections INTEGER NOT NULL DEFAULT 0,
total_requests INTEGER NOT NULL DEFAULT 0,
avg_latency_ms REAL,
is_manual INTEGER NOT NULL DEFAULT 0,
proxy_url TEXT,
proxy_username TEXT,
proxy_password TEXT,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL,
remote_config TEXT,
config_version INTEGER NOT NULL DEFAULT 0,
hardware_info TEXT,
estimated_max_concurrency INTEGER,
tunnel_mode INTEGER NOT NULL DEFAULT 0,
tunnel_connected INTEGER NOT NULL DEFAULT 0,
tunnel_connected_at INTEGER,
failed_requests INTEGER NOT NULL DEFAULT 0,
dns_failures INTEGER NOT NULL DEFAULT 0,
stream_errors INTEGER NOT NULL DEFAULT 0,
proxy_metadata TEXT
);
CREATE TABLE IF NOT EXISTS proxy_node_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
node_id TEXT NOT NULL,
event_type TEXT NOT NULL,
detail TEXT,
created_at INTEGER NOT NULL
);