К основному содержанию
промпт GP ChatGPT

Database Migrations taste — промпт для ChatGPT: что делает

Свод правил для ИИ-ассистента по созданию безопасных миграций базы данных. Защищает продакшен от блокировок таблиц и опасных правок схемы.

Открыть на GitHub

Что делает Database Migrations taste

Промпт задаёт строгие инженерные привычки при работе со схемой базы данных. Он требует писать миграции на чистом SQL, держать их в версионированных файлах рядом с кодом и никогда не менять уже применённые скрипты. Для обновлений предписан паттерн expand-contract: сначала добавляется колонка, затем наливаются данные, переключается чтение, и только потом удаляется старое поле.

Внутри заложены правила под PostgreSQL и высокие нагрузки. Новые колонки делаются nullable или с константным дефолтом, чтобы избежать перезаписи таблиц. Индексы на больших таблицах создаются через CREATE INDEX CONCURRENTLY строго вне транзакций. Каждая миграция должна начинаться с коротких lock_timeout и statement_timeout. Фоновые бэкфилы выносятся в отдельные фоновые задачи, а внешние ключи сначала помечаются как NOT VALID.

Если база данных не поддерживает транзакции или параллельное построение индексов, часть рекомендаций придётся адаптировать вручную.

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

  • составить безопасную миграцию для добавления колонки в нагруженную таблицу
  • переименовать поле без остановки сервиса через схему dual-write
  • создать индекс в PostgreSQL без блокировки записи
  • разбить тяжёлое обновление данных на фоновые пакетные задачи

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

  • Напиши SQL-миграцию для добавления статуса заказа с учётом нулевого простоя.
  • Как безопасно переименовать колонку user_id в accounts_id по паттерну expand-contract?
  • Сгенерируй миграцию для внешнего ключа в PostgreSQL, используя NOT VALID.

Как установить Database Migrations taste

Как использовать

Вставьте текст в начало диалога или в инструкции проекта

Вопросы о Database Migrations taste

Как использовать Database Migrations taste в ChatGPT?

Скопируйте текст промпта и вставьте его в системные инструкции (Custom Instructions) или отправьте в начале диалога перед запросом SQL-миграций.

Что делает этот промпт?

Он настраивает модель на генерацию безопасных SQL-миграций без даунтайма. Промпт запрещает править старые файлы и требует разделять изменения на независимые шаги.

Как промпт рекомендует создавать индексы на больших таблицах?

Для PostgreSQL предписано использовать команду CREATE INDEX CONCURRENTLY строго вне блока транзакции, чтобы избежать блокировки параллельных запросов.

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

prompts.csv · CC0-1.0
# Database Migrations taste
- Keep every schema change in a versioned migration file committed next to the code that needs it. Confidence: 0.95
- Write migrations in plain SQL rather than ORM-generated diffs you have not read. Confidence: 0.80
- Never edit a migration that has already run in a shared environment; add a new one instead. Confidence: 0.95
- Use the expand and contract pattern: add the new column, backfill, switch reads, then drop the old column in a later release. Confidence: 0.90
- Make every migration safe to run while the previous app version is still serving traffic. Confidence: 0.90
- Add new columns as nullable or with a constant default to avoid long table rewrites. Confidence: 0.85
- Create indexes on large Postgres tables with CREATE INDEX CONCURRENTLY outside a transaction. Confidence: 0.90
- Set a short lock_timeout and statement_timeout at the top of each migration. Confidence: 0.85
- Run large backfills as batched background jobs, not inside the migration itself. Confidence: 0.90
- Keep one logical change per migration so failures are easy to read and retry. Confidence: 0.80
- Name migration files with a UTC timestamp prefix and a short verb phrase like 20261017_add_orders_status. Confidence: 0.75
- Prefer forward-only migrations and fix mistakes with a new migration instead of relying on down scripts. Confidence: 0.70
- Run migrations as a separate deploy step before the new application code starts. Confidence: 0.85
- Test every migration in CI against a fresh database and against a copy of production-sized data. Confidence: 0.80
- Add foreign keys and check constraints as NOT VALID first, then validate them in a separate step. Confidence: 0.80
- Rename columns and tables only through a view or dual-write period, never in a single step. Confidence: 0.75
- Store the applied migration history in the database and fail the deploy if it has drifted. Confidence: 0.85
- Review migrations as carefully as application code, with the generated SQL visible in the pull request. Confidence: 0.90
- Keep seed and fixture data out of schema migrations. Confidence: 0.80

© f · CC0-1.0 · f/prompts.chat

Похожие промпты

Все промпты по теме «Данные и базы» →

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

Весь набор →
Go Service taste Набор инженерных правил для Go-сервиса: какой роутер брать, как раскладывать пакеты, что делать с ошибками и логами. Пригодится, когда агент пишет бэкенд с нуля. GP ChatGPT ★ 174 676звёзд репо Testing taste Набор правил для генерации тестов на TypeScript в ChatGPT и Claude.ai. Помогает писать предсказуемые проверки на Vitest и Playwright. GP ChatGPT ★ 174 676звёзд репо Rust CLI taste Промпт задаёт набор правил, по которым ИИ пишет консольные утилиты на Rust: разбор аргументов, ошибки, вывод, тесты. GP ChatGPT ★ 174 676звёзд репо React State Management taste Сводка правил по управлению состоянием в React: когда использовать useState, Zustand, Context и TanStack Query. Помогает избежать типичных ошибок вроде лишних глобальных сторов. GP ChatGPT ★ 174 676звёзд репо Observability taste Набор правил для ИИ-ассистента: как расставлять трейсы, метрики и логи в сервисе, чтобы потом не гадать по дашбордам. Пригодится, когда просите модель написать код с телеметрией. GP ChatGPT ★ 174 676звёзд репо Python Packaging taste Промпт задаёт агенту набор правил для упаковки Python-проектов: pyproject.toml, src/, uv, Ruff. Пригодится, когда нужно привести новый пакет к одному стилю. GP ChatGPT ★ 174 676звёзд репо API Design taste Набор правил для проектирования REST API с оценками уверенности. Помогает боту проверять эндпоинты, форматы ошибок и схемы валидации. GP ChatGPT ★ 174 676звёзд репо Open Source Release Checklist Builder (YAML) Промпт превращает план релиза open-source проекта в YAML-чеклист с версиями, тестами, артефактами, безопасностью и каналами анонса. GP ChatGPT ★ 174 676звёзд репо

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

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