feat: Migrate data storage to PostgreSQL with schema setup, initialization script, and update documentation
This commit is contained in:
81
src/storage/schema.sql
Normal file
81
src/storage/schema.sql
Normal file
@@ -0,0 +1,81 @@
|
||||
-- Database schema for Cloud MCP Server
|
||||
-- PostgreSQL database schema
|
||||
|
||||
-- Code Snippets table
|
||||
CREATE TABLE IF NOT EXISTS code_snippets (
|
||||
id VARCHAR(255) PRIMARY KEY,
|
||||
title TEXT NOT NULL,
|
||||
code TEXT NOT NULL,
|
||||
language VARCHAR(100) NOT NULL,
|
||||
tags TEXT[] DEFAULT '{}',
|
||||
category VARCHAR(100),
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Notes table
|
||||
CREATE TABLE IF NOT EXISTS notes (
|
||||
id VARCHAR(255) PRIMARY KEY,
|
||||
title TEXT NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
tags TEXT[] DEFAULT '{}',
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Tasks table
|
||||
CREATE TABLE IF NOT EXISTS tasks (
|
||||
id VARCHAR(255) PRIMARY KEY,
|
||||
title TEXT NOT NULL,
|
||||
description TEXT,
|
||||
completed BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
|
||||
completed_at TIMESTAMP WITH TIME ZONE
|
||||
);
|
||||
|
||||
-- Baby Milestones table
|
||||
CREATE TABLE IF NOT EXISTS baby_milestones (
|
||||
id VARCHAR(255) PRIMARY KEY,
|
||||
title TEXT NOT NULL,
|
||||
description TEXT NOT NULL,
|
||||
date DATE NOT NULL,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Math Resources table
|
||||
CREATE TABLE IF NOT EXISTS math_resources (
|
||||
id VARCHAR(255) PRIMARY KEY,
|
||||
title TEXT NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
grade VARCHAR(50),
|
||||
difficulty VARCHAR(50),
|
||||
tags TEXT[] DEFAULT '{}',
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Game Wishlist table
|
||||
CREATE TABLE IF NOT EXISTS game_wishlist (
|
||||
id VARCHAR(255) PRIMARY KEY,
|
||||
game_name TEXT NOT NULL,
|
||||
platform VARCHAR(100),
|
||||
notes TEXT,
|
||||
added_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Create indexes for better search performance
|
||||
CREATE INDEX IF NOT EXISTS idx_code_snippets_tags ON code_snippets USING GIN(tags);
|
||||
CREATE INDEX IF NOT EXISTS idx_code_snippets_language ON code_snippets(language);
|
||||
CREATE INDEX IF NOT EXISTS idx_code_snippets_category ON code_snippets(category);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_notes_tags ON notes USING GIN(tags);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_tasks_completed ON tasks(completed);
|
||||
CREATE INDEX IF NOT EXISTS idx_tasks_created_at ON tasks(created_at);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_baby_milestones_date ON baby_milestones(date);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_math_resources_tags ON math_resources USING GIN(tags);
|
||||
CREATE INDEX IF NOT EXISTS idx_math_resources_grade ON math_resources(grade);
|
||||
CREATE INDEX IF NOT EXISTS idx_math_resources_difficulty ON math_resources(difficulty);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_game_wishlist_platform ON game_wishlist(platform);
|
||||
Reference in New Issue
Block a user