summaryrefslogtreecommitdiffhomepage
path: root/internal/db/migrations/000001_initial.up.sql
diff options
context:
space:
mode:
authorKujtim Hoxha <[email protected]>2025-04-21 19:59:35 +0200
committerGitHub <[email protected]>2025-04-21 19:59:35 +0200
commitf33dff87725764af0b675b5e5b2e011b21c14c90 (patch)
tree4fe2c022305f13775f2cab3cdd80cd808259765b /internal/db/migrations/000001_initial.up.sql
parent6b1c64bcc75b89c530294b6a2d4404682b435d56 (diff)
parent3a6a26981a8074b6ab0eaadb520db986e04799ff (diff)
downloadopencode-f33dff87725764af0b675b5e5b2e011b21c14c90.tar.gz
opencode-f33dff87725764af0b675b5e5b2e011b21c14c90.zip
Merge pull request #27 from kujtimiihoxha/opencode
OpenCode - Initial Implementation
Diffstat (limited to 'internal/db/migrations/000001_initial.up.sql')
-rw-r--r--internal/db/migrations/000001_initial.up.sql25
1 files changed, 25 insertions, 0 deletions
diff --git a/internal/db/migrations/000001_initial.up.sql b/internal/db/migrations/000001_initial.up.sql
index 2fbe5547e..b846ec600 100644
--- a/internal/db/migrations/000001_initial.up.sql
+++ b/internal/db/migrations/000001_initial.up.sql
@@ -18,14 +18,39 @@ UPDATE sessions SET updated_at = strftime('%s', 'now')
WHERE id = new.id;
END;
+-- Files
+CREATE TABLE IF NOT EXISTS files (
+ id TEXT PRIMARY KEY,
+ session_id TEXT NOT NULL,
+ path TEXT NOT NULL,
+ content TEXT NOT NULL,
+ version TEXT NOT NULL,
+ created_at INTEGER NOT NULL, -- Unix timestamp in milliseconds
+ updated_at INTEGER NOT NULL, -- Unix timestamp in milliseconds
+ FOREIGN KEY (session_id) REFERENCES sessions (id) ON DELETE CASCADE,
+ UNIQUE(path, session_id, version)
+);
+
+CREATE INDEX IF NOT EXISTS idx_files_session_id ON files (session_id);
+CREATE INDEX IF NOT EXISTS idx_files_path ON files (path);
+
+CREATE TRIGGER IF NOT EXISTS update_files_updated_at
+AFTER UPDATE ON files
+BEGIN
+UPDATE files SET updated_at = strftime('%s', 'now')
+WHERE id = new.id;
+END;
+
-- Messages
CREATE TABLE IF NOT EXISTS messages (
id TEXT PRIMARY KEY,
session_id TEXT NOT NULL,
role TEXT NOT NULL,
parts TEXT NOT NULL default '[]',
+ model TEXT,
created_at INTEGER NOT NULL, -- Unix timestamp in milliseconds
updated_at INTEGER NOT NULL, -- Unix timestamp in milliseconds
+ finished_at INTEGER, -- Unix timestamp in milliseconds
FOREIGN KEY (session_id) REFERENCES sessions (id) ON DELETE CASCADE
);