AgentSkillsCN

Supabase Migration

运用恰当的行级安全性策略,创建并执行 Supabase 数据库迁移

SKILL.md
--- frontmatter
name: Supabase Migration
description: Create and run Supabase database migrations with proper RLS policies

Supabase Migration Skill

Overview

This skill helps create and execute Supabase database migrations with proper Row Level Security (RLS) policies.

When to Use

  • Creating new tables
  • Adding columns to existing tables
  • Setting up RLS policies
  • Running migrations in production

Instructions

1. Create Migration File

Create SQL migration in /supabase/migrations/YYYYMMDD_description.sql:

sql
-- ═══════════════════════════════════════════════════════════════════════════
-- MIGRATION: [Description]
-- ═══════════════════════════════════════════════════════════════════════════

-- Create table
CREATE TABLE IF NOT EXISTS public.table_name (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Enable RLS
ALTER TABLE public.table_name ENABLE ROW LEVEL SECURITY;

-- Create policies
CREATE POLICY "Public read access" ON public.table_name 
    FOR SELECT USING (true);

2. Run Migration

Use browser agent to execute SQL in Supabase dashboard:

  • Navigate to /sql/new
  • Inject SQL via Monaco editor
  • Click Run and confirm

3. Verify

Check Security Advisor at /advisors/security for any new issues.

Policy Templates

Public Read

sql
CREATE POLICY "Public read access" ON public.table_name 
    FOR SELECT USING (true);

User Owned

sql
CREATE POLICY "Users manage own data" ON public.table_name 
    FOR ALL USING (auth.uid() = user_id);

System Managed

sql
CREATE POLICY "System manages data" ON public.table_name 
    FOR ALL USING (true);