From 5bfd16e69ea80c2bce20dfe08bb842bb1585b338 Mon Sep 17 00:00:00 2001 From: goulustis Date: Fri, 30 Jan 2026 11:26:51 +0800 Subject: [PATCH] data table sql files --- scripts/init_user.sql | 13 +++++++++++++ scripts/recreate_table.sql | 20 ++++++++++++++++++++ scripts/table_schema.sql | 12 ++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 scripts/init_user.sql create mode 100644 scripts/recreate_table.sql create mode 100644 scripts/table_schema.sql diff --git a/scripts/init_user.sql b/scripts/init_user.sql new file mode 100644 index 0000000..fe33926 --- /dev/null +++ b/scripts/init_user.sql @@ -0,0 +1,13 @@ +-- Create a new database +CREATE DATABASE ai_conversations; + +-- Create a dedicated user (role) for your app +CREATE USER myapp_user WITH PASSWORD 'secure_password_123'; + +-- Grant privileges +GRANT ALL PRIVILEGES ON DATABASE ai_conversations TO myapp_user; + +-- Also needed: allow user to create schemas/tables +\c ai_conversations +ALTER USER myapp_user CREATEDB; -- optional but helpful during dev +GRANT ALL ON SCHEMA public TO myapp_user; \ No newline at end of file diff --git a/scripts/recreate_table.sql b/scripts/recreate_table.sql new file mode 100644 index 0000000..fa83535 --- /dev/null +++ b/scripts/recreate_table.sql @@ -0,0 +1,20 @@ +-- Drop the index first (if it exists) +DROP INDEX IF EXISTS idx_messages_conversation; + +-- Drop the messages table (if it exists) +DROP TABLE IF EXISTS messages; + +-- Recreate the messages table with TEXT conversation_id +-- Note: UUID extension is no longer needed since conversation_id is TEXT +CREATE TABLE messages ( + id BIGSERIAL PRIMARY KEY, + conversation_id TEXT NOT NULL, + message_type VARCHAR(10) NOT NULL CHECK (message_type IN ('human', 'ai', 'tool')), + content TEXT NOT NULL, + sequence_number INTEGER NOT NULL CHECK (sequence_number >= 0), + created_at TIMESTAMPTZ DEFAULT NOW() +); + +-- Recreate the index for fast retrieval of all messages in a conversation (in order) +CREATE INDEX idx_messages_conversation ON messages (conversation_id, sequence_number); + diff --git a/scripts/table_schema.sql b/scripts/table_schema.sql new file mode 100644 index 0000000..a138d16 --- /dev/null +++ b/scripts/table_schema.sql @@ -0,0 +1,12 @@ +-- Create the messages table +CREATE TABLE IF NOT EXISTS messages ( + id BIGSERIAL PRIMARY KEY, + conversation_id TEXT NOT NULL, + message_type VARCHAR(10) NOT NULL CHECK (message_type IN ('human', 'ai', 'tool')), + content TEXT NOT NULL, + sequence_number INTEGER NOT NULL CHECK (sequence_number >= 0), + created_at TIMESTAMPTZ DEFAULT NOW() +); + +-- Index for fast retrieval of all messages in a conversation (in order) +CREATE INDEX IF NOT EXISTS idx_messages_conversation ON messages (conversation_id, sequence_number); \ No newline at end of file