prisma-expert
Освойте Prisma ORM для разработки баз данных
Столкнулись с ошибками схемы Prisma, конфликтами миграций или медленными запросами к базе данных? Этот навык предоставляет экспертные рекомендации по проектированию схем, управлению миграциями и оптимизации запросов для PostgreSQL, MySQL и SQLite.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «prisma-expert». Схема с неявной связью многие-ко-многим, вызывающей проблемы производительности
Ожидаемый результат:
Обнаружена неявная связь многие-ко-многим между моделями User и Post. Рекомендация: Создайте явную модель Join с дополнительными полями для метаданных. Добавлены директивы @relation с понятным соглашением об именовании. Добавлен композитный индекс на внешние ключи для производительности соединения.
Использование «prisma-expert». Запрос N+1 в эндпоинте списка пользователей, извлекающий посты индивидуально
Ожидаемый результат:
Обнаружен паттерн запроса N+1. Решение: Замените индивидуальные выборки постов одним запросом с использованием include relation. Сокращено со 101 запроса до 1 запроса. Добавлен select для ограничения возвращаемых полей. Ожидаемое сокращение обращений к базе данных на 95%.
Аудит безопасности
БезопасноStatic analysis flagged 88 patterns that are all false positives for this legitimate Prisma ORM helper skill. External commands are standard Prisma CLI operations (validate, migrate, generate). Network references are documentation URLs. Environment access is limited to DATABASE_URL and NODE_ENV configuration required for database connectivity. No malicious patterns, credential exfiltration, or dangerous code execution detected.
Проблемы низкого риска (1)
Факторы риска
⚙️ Внешние команды (4)
🔑 Переменные окружения (2)
Оценка качества
Что вы можете построить
Full-Stack разработчик, создающий SaaS-приложение
Спроектируйте масштабируемую схему Prisma с правильными моделями пользователя, подписки и биллинга. Создайте безопасные рабочие процессы миграции для продакшен-развертываний и оптимизируйте запросы для производительности панели управления.
Тимлид, разрешающий конфликты миграций
Отладка конфликтующих миграций от нескольких разработчиков. Научитесь использовать prisma migrate resolve, объединять историю миграций и устанавливать командные рабочие процессы для предотвращения будущих конфликтов.
Backend-инженер, оптимизирующий производительность API
Выявление и исправление проблем N+1 запросов в REST или GraphQL API. Внедрение правильных паттернов select и include, добавление стратегических индексов и настройка пулинга соединений для высоконагруженных эндпоинтов.
Попробуйте эти промпты
Проверьте мою схему Prisma на лучшие практики. Проверьте определения связей, использование индексов и типы полей. Предложите улучшения для производительности и поддерживаемости.
Моя миграция Prisma не удалась с ошибкой [вставьте ошибку]. База данных находится в несогласованном состоянии. Помогите диагностировать проблему и предоставьте пошаговые команды для её решения.
У меня есть этот медленный запрос Prisma [вставьте запрос]. Проанализируйте его на проблемы N+1, избыточное извлечение данных и отсутствующие индексы. Покажите оптимизированную версию с explain.
Я развертываю на [Vercel/AWS Lambda/Render] и получаю ошибки соединения. Помогите настроить пулинг соединений Prisma для моего serverless-окружения с правильными параметрами DATABASE_URL.
Лучшие практики
- Всегда используйте явный @relation с полями и ссылками для ясности и предотвращения проблем разрешения связей
- Включите логирование запросов в разработке для раннего выявления медленных запросов и проблем N+1
- Используйте migrate dev только в разработке — всегда используйте migrate deploy для продакшена с CI/CD pipelines
Избегать
- Использование неявных связей многие-ко-многим, когда нужно хранить метаданные в таблице соединения
- Вызов prisma.user.findMany() с последующим циклом для получения связанных данных — вызывает N+1 запросов
- Запуск migrate dev в продакшене, что может привести к потере данных и не является идемпотентным