Database Schema Designer
Requirements to migrations, types, seed data, and RLS policies.
$skillfish add ~skills/database-schema-designer Real Conversations
See how the Database Schema Designer skill responds to actual requests. These are representative examples of what your AI agent will produce.
I'm building a project management SaaS. Each organization gets their own workspace. I need users, projects, tasks, comments, and file attachments. Using PostgreSQL with Prisma. Generate the schema with RLS policies.
This skill includes executable scripts — I'll need your permission before running them.
Here's the schema with Row Level Security for multi-tenant isolation:
-- 001_initial_schema.sql
CREATE TABLE organizations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name TEXT NOT NULL,
slug TEXT NOT NULL UNIQUE,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
org_id UUID NOT NULL REFERENCES organizations(id) ON DELETE CASCADE,
email TEXT NOT NULL,
role TEXT NOT NULL CHECK (role IN ('owner','admin','member','viewer')),
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (org_id, email)
);
CREATE TABLE tasks (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
org_id UUID NOT NULL REFERENCES organizations(id) ON DELETE CASCADE,
project_id UUID NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
assignee_id UUID REFERENCES users(id) ON DELETE SET NULL,
title TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'todo'
CHECK (status IN ('todo','in_progress','done','cancelled')),
priority TEXT NOT NULL DEFAULT 'medium',
due_date DATE,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- RLS: users see only their org's rows
ALTER TABLE tasks ENABLE ROW LEVEL SECURITY;
CREATE POLICY tasks_org_isolation ON tasks
USING (org_id = current_setting('app.current_org_id')::UUID);
-- Indexes for common query patterns
CREATE INDEX idx_tasks_project ON tasks (project_id, status, created_at DESC);
CREATE INDEX idx_tasks_assignee ON tasks (assignee_id) WHERE assignee_id IS NOT NULL;
Key design choices:
org_idon every table — enforces isolation at DB level, not just app layerON DELETE CASCADE— deleting an org cleans up everything automatically- RLS uses
app.current_org_id— set at session start:SET app.current_org_id = 'org_abc'
Want me to add the comments and attachments tables, the full Prisma schema, and seed data?
Get Started
How to install and use this skill in your preferred environment.
Skills are designed for AI coding agents (Claude Code, Cursor, Windsurf) and IDE-based workflows where the agent can read files, run scripts, and act on your codebase. Web-based AI can use the knowledge and frameworks, but won't have tool access.
Models & Context
Which AI models and context windows work best with this skill.
Recommended Models
Larger models produce more detailed, production-ready outputs.
Context Window
This skill's SKILL.md is typically 3–10 KB — fits in any modern context window.
All current frontier models (Claude, GPT, Gemini) support 100K+ context. Use the full window for complex multi-service work.
Pro tips for best results
Be specific
Include numbers — users, budget, RPS — so the skill can size the architecture.
Share constraints
Compliance needs, team size, and existing stack all improve the output.
Iterate
Start with a high-level design, then ask follow-ups for IaC, cost analysis, or security review.
Combine skills
Pair with companion skills below for end-to-end coverage.
Ready to try Database Schema Designer?
Install the skill and start getting expert-level guidance in your workflow — any agent, any IDE.
$skillfish add ~skills/database-schema-designer