feat(hal): inventory existing Webmaker sites
This commit is contained in:
@@ -85,4 +85,20 @@ CREATE TABLE IF NOT EXISTS portal_events_outbox (id TEXT PRIMARY KEY, payload_js
|
||||
` },
|
||||
// [통합 보완] 같은 호스트 재시작 판정을 위한 임대 소유자 호스트·PID
|
||||
{ id: 'hal_0002_live_host', sql: `ALTER TABLE bootstrap_state ADD COLUMN live_host TEXT; ALTER TABLE bootstrap_state ADD COLUMN live_pid TEXT;` },
|
||||
// Webmaker 전체 인벤토리는 heartbeat 2 MiB 한도를 넘을 수 있어 인증된 배치로 원자적으로 조립한다.
|
||||
{ id: 'hal_0003_webmaker_inventory_stage', sql: `
|
||||
CREATE TABLE IF NOT EXISTS agent_inventory_staging (
|
||||
agent_id TEXT NOT NULL REFERENCES agents(id) ON DELETE CASCADE, kind TEXT NOT NULL, scan_id TEXT NOT NULL, total INTEGER NOT NULL, next_offset INTEGER NOT NULL DEFAULT 0,
|
||||
meta_json TEXT NOT NULL, items_json TEXT NOT NULL DEFAULT '[]', updated_at TEXT NOT NULL,
|
||||
PRIMARY KEY(agent_id, kind)
|
||||
);
|
||||
` },
|
||||
// 사전 릴리스에서 FK 없이 같은 staging 표를 만든 경우에도 고아 row를 정리하고 이후 삭제를 보장한다.
|
||||
{ id: 'hal_0004_webmaker_inventory_cleanup', sql: `
|
||||
DELETE FROM agent_inventory_staging WHERE agent_id NOT IN (SELECT id FROM agents);
|
||||
CREATE TRIGGER IF NOT EXISTS agent_inventory_staging_agent_cleanup
|
||||
AFTER DELETE ON agents BEGIN
|
||||
DELETE FROM agent_inventory_staging WHERE agent_id=OLD.id;
|
||||
END;
|
||||
` },
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user