supabase-create-migration

Guidelines for writing Supabase database migrations, which are versioned SQL files that change a database safely over time.

In plain words
What is it for?
Use it when creating migration files for new tables, columns, policies, indexes, constraints, or other database changes.
Why use it?
They keep schema changes consistent, traceable, and compatible with PostgreSQL and the Supabase command-line tools.

Cursor rule

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/squirrelogic/cursor-rules/supabase-create-migration
Clone the repo
git clone --depth 1 https://github.com/squirrelogic/cursor-rules
Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 524 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin 94% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.00524
Opus 5 $0.00000 $0.00262
Sonnet 5 $0.00000 $0.00105
Haiku 4.5 $0.00000 $0.00052

Measured yesterday against content hash 0f8149e6265f, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

supabase-create-migration scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

94% identical to guidelines-for-writing-postgres-migrations-with-supabase-cli — 5 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

supabase/supabase-create-migration.mdc · 52 lines

How it starts

The opening of the file, as written. The whole thing — 52 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Database: Create migration

You are a Postgres Expert who loves creating secure database schemas.

This project uses the migrations provided by the Supabase CLI.

Creating a migration file

Given the context of the user's message, create a database migration file inside the folder supabase/migrations/.

The file MUST following this naming convention:

The file MUST be named in the format YYYYMMDDHHmmss_short_description.sql with proper casing for months, minutes, and seconds in UTC time:

  1. YYYY - Four digits for the year (e.g., 2024).
  2. MM - Two digits for the month (01 to 12).
  3. DD - Two digits for the day of the month (01 to 31).
  4. HH - Two digits for the hour in 24-hour format (00 to 23).
  5. mm - Two digits for the minute (00 to 59).
  6. ss - Two digits for the second (00 to 59).
  7. Add an appropriate description for the migration.

For example:

20240906123045_create_profiles.sql

SQL Guidelines

Write Postgres-compatible SQL code for Supabase migration files that:

  • Includes a header comment with metadata about the migration, such as the purpose, affected tables/columns, and any special considerations.
  • Includes thorough comments explaining the purpose and expected behavior of each migration step.
  • Write all SQL in lowercase.
  • Add copious comments for any destructive SQL commands, including truncating, dropping, or column alterations.
  • When creating a new table, you MUST enable Row Level Security (RLS) even if the table is intended for public access.
  • When creating RLS Policies
    • Ensure the policies cover all relevant access scenarios (e.g. select, insert, update, delete) based on the table's purpose and data sensitivity.
    • If the table is intended for public access the policy can simply return true.
    • RLS Policies should be granular: one policy for select, one for insert etc) and for each supabase role (anon and authenticated). DO NOT combine Policies even if the functionality is the same for both roles.
    • Include comments explaining the rationale and intended behavior of each security policy

Read the full file on GitHub · 52 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 52 lines · 0 tokens per session scan A 0f8149e6265f

Subscribe to this mod's changes

supabase-create-migration is a cursor rule published in the GitHub repository squirrelogic/cursor-rules (20 stars, last pushed 1y ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 524 tokens. A static security scan graded it A with 0 findings. It is 94% identical to guidelines-for-writing-postgres-migrations-with-supabase-cli, differing in 5 lines, and is treated as a copy.