MCPcopy Create free account
hub / github.com/PromtEngineer/localGPT / init_database

Method init_database

backend/database.py:20–106  ·  view source on GitHub ↗

Initialize the SQLite database with required tables

(self)

Source from the content-addressed store, hash-verified

18 self.init_database()
19
20 def init_database(self):
21 """Initialize the SQLite database with required tables"""
22 conn = sqlite3.connect(self.db_path)
23 cursor = conn.cursor()
24
25 # Enable foreign keys
26 conn.execute("PRAGMA foreign_keys = ON")
27
28 # Sessions table
29 conn.execute('''
30 CREATE TABLE IF NOT EXISTS sessions (
31 id TEXT PRIMARY KEY,
32 title TEXT NOT NULL,
33 created_at TEXT NOT NULL,
34 updated_at TEXT NOT NULL,
35 model_used TEXT NOT NULL,
36 message_count INTEGER DEFAULT 0
37 )
38 ''')
39
40 # Messages table
41 conn.execute('''
42 CREATE TABLE IF NOT EXISTS messages (
43 id TEXT PRIMARY KEY,
44 session_id TEXT NOT NULL,
45 content TEXT NOT NULL,
46 sender TEXT NOT NULL CHECK (sender IN ('user', 'assistant')),
47 timestamp TEXT NOT NULL,
48 metadata TEXT DEFAULT '{}',
49 FOREIGN KEY (session_id) REFERENCES sessions (id) ON DELETE CASCADE
50 )
51 ''')
52
53 # Create indexes for better performance
54 conn.execute('CREATE INDEX IF NOT EXISTS idx_messages_session_id ON messages(session_id)')
55 conn.execute('CREATE INDEX IF NOT EXISTS idx_messages_timestamp ON messages(timestamp)')
56 conn.execute('CREATE INDEX IF NOT EXISTS idx_sessions_updated_at ON sessions(updated_at)')
57
58 # Documents table
59 conn.execute('''
60 CREATE TABLE IF NOT EXISTS session_documents (
61 id INTEGER PRIMARY KEY AUTOINCREMENT,
62 session_id TEXT NOT NULL,
63 file_path TEXT NOT NULL,
64 indexed INTEGER DEFAULT 0,
65 FOREIGN KEY (session_id) REFERENCES sessions (id) ON DELETE CASCADE
66 )
67 ''')
68 conn.execute('CREATE INDEX IF NOT EXISTS idx_session_documents_session_id ON session_documents(session_id)')
69
70 # --- NEW: Index persistence tables ---
71 cursor.execute('''
72 CREATE TABLE IF NOT EXISTS indexes (
73 id TEXT PRIMARY KEY,
74 name TEXT UNIQUE,
75 description TEXT,
76 created_at TEXT,
77 updated_at TEXT,

Callers 1

__init__Method · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected