Skip to main content
Glama
ahmetkca

Multi-Tenant PostgreSQL MCP Server

by ahmetkca
seed.sql4.55 kB
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE SCHEMA IF NOT EXISTS dare; CREATE SCHEMA IF NOT EXISTS nutriart; -- Dare schema tables CREATE TABLE IF NOT EXISTS dare.app_event ( event_id BIGSERIAL NOT NULL, user_id UUID NOT NULL DEFAULT uuid_generate_v4(), event_type TEXT NOT NULL, event_timestamp TIMESTAMPTZ NOT NULL DEFAULT now(), payload JSONB, PRIMARY KEY (event_timestamp, event_id) ); CREATE TABLE IF NOT EXISTS dare.app_event_metadata ( metadata_id BIGSERIAL NOT NULL, event_timestamp TIMESTAMPTZ NOT NULL, event_id BIGINT NOT NULL, meta_key TEXT NOT NULL, meta_value TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT now(), PRIMARY KEY (metadata_id), CONSTRAINT fk_dare_event FOREIGN KEY (event_timestamp, event_id) REFERENCES dare.app_event(event_timestamp, event_id) ON DELETE CASCADE ); -- Nutriart schema tables CREATE TABLE IF NOT EXISTS nutriart.app_event ( event_id BIGSERIAL NOT NULL, user_id UUID NOT NULL DEFAULT uuid_generate_v4(), event_type TEXT NOT NULL, event_timestamp TIMESTAMPTZ NOT NULL DEFAULT now(), payload JSONB, PRIMARY KEY (event_timestamp, event_id) ); CREATE TABLE IF NOT EXISTS nutriart.app_event_metadata ( metadata_id BIGSERIAL NOT NULL, event_timestamp TIMESTAMPTZ NOT NULL, event_id BIGINT NOT NULL, meta_key TEXT NOT NULL, meta_value TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT now(), PRIMARY KEY (metadata_id), CONSTRAINT fk_nutriart_event FOREIGN KEY (event_timestamp, event_id) REFERENCES nutriart.app_event(event_timestamp, event_id) ON DELETE CASCADE ); -- Seed data for dare schema CREATE TEMP TABLE dare_inserted_events AS WITH ins AS ( INSERT INTO dare.app_event (user_id, event_type, payload) VALUES ('a3c9e5b2-1f6d-4c8a-b7e2-0d5f8a9c1234', 'login', '{"ip":"192.168.1.10"}'), ('b7f1d2c9-3e44-4d71-ae23-9fae6c7b5678', 'purchase', '{"item_id":42,"price":19.99}') RETURNING event_timestamp, event_id ) SELECT event_timestamp, event_id FROM ins; INSERT INTO dare.app_event_metadata (event_timestamp, event_id, meta_key, meta_value) SELECT event_timestamp, event_id, 'device', 'mobile' FROM dare_inserted_events WHERE event_id = (SELECT event_id FROM dare_inserted_events LIMIT 1); INSERT INTO dare.app_event_metadata (event_timestamp, event_id, meta_key, meta_value) SELECT event_timestamp, event_id, 'app_version', '3.2.1' FROM dare_inserted_events WHERE event_id = (SELECT event_id FROM dare_inserted_events LIMIT 1); INSERT INTO dare.app_event_metadata (event_timestamp, event_id, meta_key, meta_value) SELECT event_timestamp, event_id, 'currency', 'USD' FROM dare_inserted_events OFFSET 1 LIMIT 1; INSERT INTO dare.app_event_metadata (event_timestamp, event_id, meta_key, meta_value) SELECT event_timestamp, event_id, 'payment_method','credit_card' FROM dare_inserted_events OFFSET 1 LIMIT 1; -- Seed data for nutriart schema CREATE TEMP TABLE nutriart_inserted_events AS WITH ins AS ( INSERT INTO nutriart.app_event (user_id, event_type, payload) VALUES ('c1d2e3f4-5678-90ab-cdef-1234567890ab', 'recipe_view', '{"recipe_id":101}'), ('d9e8f7a6-5432-10fe-bcda-0987654321fe', 'ingredient_add', '{"ingredient":"avocado","quantity":2}') RETURNING event_timestamp, event_id ) SELECT event_timestamp, event_id FROM ins; INSERT INTO nutriart.app_event_metadata (event_timestamp, event_id, meta_key, meta_value) SELECT event_timestamp, event_id, 'referrer', 'search' FROM nutriart_inserted_events WHERE event_id = (SELECT event_id FROM nutriart_inserted_events LIMIT 1); INSERT INTO nutriart.app_event_metadata (event_timestamp, event_id, meta_key, meta_value) SELECT event_timestamp, event_id, 'duration_seconds','45' FROM nutriart_inserted_events WHERE event_id = (SELECT event_id FROM nutriart_inserted_events LIMIT 1); INSERT INTO nutriart.app_event_metadata (event_timestamp, event_id, meta_key, meta_value) SELECT event_timestamp, event_id, 'source', 'manual_entry' FROM nutriart_inserted_events OFFSET 1 LIMIT 1;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahmetkca/mcp-server-postgres'

If you have feedback or need assistance with the MCP directory API, please join our Discord server