К основному содержанию
правило

postgresql — правило для Cursor: безопасные миграции и индексы

Правило для Cursor, которое задаёт агенту стиль работы с PostgreSQL: параметризованные запросы, TIMESTAMPTZ, индексы по внешним ключам. Пригодится, когда агент пишет SQL и миграции в вашем проекте.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/postgresql.mdc
Открыть на GitHub

Что делает postgresql

Правило подключается к файлам **/*.sql, **/migrations/**/*.sql, **/schema.sql и **/seed.sql — то есть срабатывает там, где агент трогает схему или запросы. В схеме оно требует TIMESTAMPTZ вместо TIMESTAMP без часового пояса, UUID для публичных идентификаторов и BIGSERIAL для внутренних ключей, NOT NULL по умолчанию и явное поведение ON DELETE у внешних ключей.

В запросах — только параметры вместо подстановки строк, перечисление колонок вместо SELECT * и LIMIT на больших выборках. Перед выпуском сложного запроса правило просит прогнать EXPLAIN ANALYZE. Индексы: по каждой колонке внешнего ключа, CREATE INDEX CONCURRENTLY на живых таблицах, частичные индексы для частых фильтров.

Миграции именуются как V001__create_table.sql, добавление большой колонки идёт в несколько шагов с backfill, откат проверяется до деплоя. Отдельный раздел запрещает SELECT *, склейку SQL из строк, смену схемы в часы пик, пароли в открытом виде и TRUNCATE в коде приложения. Файл кладётся в .cursor/rules/postgresql.mdc; в других инструментах путь другой, и правило оттуда не подхватится.

Какие задачи решает

  • поймать SELECT * и склейку SQL из строк до ревью
  • добавить колонку на живой таблице без блокировки
  • проставить индексы по всем внешним ключам
  • перевести TIMESTAMP на TIMESTAMPTZ в новой схеме
  • проверить откат миграции перед деплоем

Примеры запросов агенту

  • Напиши миграцию V007__add_status.sql, которая добавляет колонку в таблицу заказов без блокировки.
  • Перепиши этот запрос на параметризованный и убери SELECT *.
  • Прогони EXPLAIN ANALYZE для выборки заказов за месяц и предложи индексы.

Как установить postgresql

Вручную: положить файлы

.cursor/rules/postgresql.mdc

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о postgresql

Как установить правило postgresql в Cursor?

Создайте файл .cursor/rules/postgresql.mdc в проекте и вставьте в него содержимое правила. Cursor подхватит его для файлов, подходящих под globs.

Что делает это правило?

Задаёт агенту соглашения по схеме, запросам, индексам, миграциям и транзакциям в PostgreSQL. Плюс список запретов вроде SELECT * и склейки SQL из строк.

Когда правило применяется?

К файлам **/*.sql, **/migrations/**/*.sql, **/schema.sql и **/seed.sql. Вне этих путей оно не действует.

Исходный текст

postgresql.mdc · CC0-1.0
---
description: "PostgreSQL production rules. Safe migrations, parameterized queries, TIMESTAMPTZ, proper indexing strategy."
globs: **/*.sql, **/migrations/**/*.sql, **/schema.sql, **/seed.sql
alwaysApply: false
---
# PostgreSQL Rules

Expert PostgreSQL developer. Safe migrations, parameterized queries, proper indexing.

## Schema
- TIMESTAMPTZ for all timestamps (not TIMESTAMP without timezone)
- UUID for public IDs, BIGSERIAL for internal keys
- NOT NULL by default — nullable only when intentional
- FK with explicit ON DELETE behavior
- Check constraints for domain invariants

## Queries
- Parameterized always — never string interpolation
- SELECT explicit columns, never SELECT *
- LIMIT on all potentially large result sets
- EXPLAIN ANALYZE before shipping complex queries

## Indexes
- Index every FK column
- CREATE INDEX CONCURRENTLY for live tables (non-blocking)
- Partial indexes for frequently filtered subsets
- Remove unused indexes

## Migrations
- Versioned files: V001__create_table.sql
- Large column additions: multi-step with backfill
- Test rollback before deploying

## Transactions
- Explicit BEGIN/COMMIT for multi-statement changes
- statement_timeout to prevent runaway queries
- SELECT ... FOR UPDATE for row locking

## Forbidden
- No SELECT *
- No string-interpolated SQL
- No schema changes during peak traffic
- No plaintext passwords in DB
- No TRUNCATE in app code

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Похожие правила IDE

Все правила IDE по теме «Данные и базы» →
scala-spark официальный github Набор инструкций для GitHub Copilot по разработке на Apache Spark в Scala. Помогает писать быстрые трансформации, настраивать партиционирование и избегать падений памяти. ★ 40 418звёзд репо r официальный github Задаёт Copilot правила генерации кода на R: стиль проекта, безопасность, работа с путями и данными. Пригодится, если в репозитории есть .R, .Rmd или .qmd файлы. ★ 40 418звёзд репо power-bi-security-rls-best-practices официальный github Набор инструкций по настройке Row-Level Security (RLS) в Power BI. Помогает генерировать шаблоны DAX, SQL-предикаты и код для Embedded-аналитики. ★ 40 418звёзд репо power-bi-report-design-best-practices официальный github Правило помогает выбирать визуализации и проектировать структуру отчётов Power BI. Пригодится, когда нужно продумать страницу, диаграмму или навигацию. ★ 40 418звёзд репо power-bi-devops-alm-best-practices официальный github Правило для GitHub Copilot: подсказывает агенту, как вести Power BI-проект в Git, собирать CI/CD и раскатывать отчёты по средам. ★ 40 418звёзд репо power-bi-dax-best-practices официальный github Задаёт стандарты написания формул DAX для GitHub Copilot при работе с файлами .pbix, .dax, .md и .txt. Помогает избежать ошибок в фильтрации и повысить скорость вычислений. ★ 40 418звёзд репо

Из того же набора71

python-fastapi-best-practices-cursorrules-prompt-f Правило Cursor, которое задаёт агенту стиль кода для Python и FastAPI: функциональный подход, Pydantic v2, async-операции. ★ 41 011звёзд репо python-cursorrules-prompt-file-best-practices Правило Cursor, которое заставляет ИИ писать Python с аннотациями типов, докстрингами и тестами на pytest. ★ 41 011звёзд репо pyspark-etl-best-practices-cursorrules-prompt-file Правило для Cursor, которое задаёт стиль PySpark-кода: F.col(), явные joins, select вместо withColumn и работа с Iceberg. ★ 41 011звёзд репо project-epic-template-cursorrules-prompt-file Правило превращает Cursor в продакт-менеджера: агент пишет эпики и пользовательские истории по шаблону с критериями приёмки и метриками. ★ 41 011звёзд репо playwright-defect-tracking-cursorrules-prompt-file Правило для Cursor: агент пишет тесты Playwright с привязкой к ручным кейсам и собирает доказательства дефектов. ★ 41 011звёзд репо plasticode-telegram-api-cursorrules-prompt-file Правило для Cursor, которое настраивает ассистента на PHP 7.4, Plasticode и Telegram Bot API. Пригодится, если бот пишется на Plasticode и нужен код в стиле PSR-12. ★ 41 011звёзд репо nextjs15-supabase-cursorrules-prompt-file Правило для Cursor, которое держит агента в рамках стека Next.js 15, Supabase и TypeScript strict — от проверки сессии до RLS и ключей Stripe. ★ 41 011звёзд репо nextjs-vercel-typescript-cursorrules-prompt-file Правило для Cursor, которое задаёт стиль кода и структуру проекта на Next.js с TypeScript, Vercel middleware и KV-базой. ★ 41 011звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой