MCPcopy Create free account
hub / github.com/astercloud/aster / migrate

Method migrate

pkg/session/sqlite/store.go:53–99  ·  view source on GitHub ↗

migrate creates the necessary tables if they don't exist.

()

Source from the content-addressed store, hash-verified

51
52// migrate creates the necessary tables if they don't exist.
53func (s *Service) migrate() error {
54 schema := `
55 CREATE TABLE IF NOT EXISTS sessions (
56 id TEXT PRIMARY KEY,
57 app_name TEXT NOT NULL,
58 user_id TEXT NOT NULL,
59 agent_id TEXT NOT NULL,
60 metadata TEXT,
61 created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
62 updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
63 );
64
65 CREATE INDEX IF NOT EXISTS idx_sessions_app_user ON sessions(app_name, user_id);
66 CREATE INDEX IF NOT EXISTS idx_sessions_updated ON sessions(updated_at DESC);
67
68 CREATE TABLE IF NOT EXISTS events (
69 id TEXT PRIMARY KEY,
70 session_id TEXT NOT NULL,
71 invocation_id TEXT,
72 agent_id TEXT,
73 branch TEXT,
74 author TEXT,
75 content TEXT,
76 reasoning TEXT,
77 actions TEXT,
78 long_running_tool_ids TEXT,
79 metadata TEXT,
80 created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
81 FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
82 );
83
84 CREATE INDEX IF NOT EXISTS idx_events_session ON events(session_id, created_at);
85 CREATE INDEX IF NOT EXISTS idx_events_invocation ON events(invocation_id);
86
87 CREATE TABLE IF NOT EXISTS session_state (
88 session_id TEXT NOT NULL,
89 key TEXT NOT NULL,
90 value TEXT,
91 updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
92 PRIMARY KEY (session_id, key),
93 FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
94 );
95 `
96
97 _, err := s.db.Exec(schema)
98 return err
99}
100
101// Close closes the database connection.
102func (s *Service) Close() error {

Callers 1

NewFunction · 0.95

Implementers 2

InMemoryServicepkg/session/inmemory.go
Servicepkg/session/sqlite/store.go

Calls 1

ExecMethod · 0.65

Tested by

no test coverage detected