PurpleSchool — курсы программирования онлайн
  • Пути
    • Frontend React разработчик
    • Frontend Vue разработчик
    • Backend разработчик Node.js
    • Fullstack разработчик React / Node.js
    • Mobile разработчик React Native
    • Backend разработчик Golang
    • Devops инженер
    • Backend разработчик Python
  • AI для кодаНовое
  • О нас
    • Отзывы
    • Реферальная программа
    • О компании
    • Контакты
  • Иконка открытия меню
    • Сообщество
    • PurpleПлюс
    • AI Собеседование
    • AI тренажёр
    • Проекты
PurpleSchool — платформа бесплатных roadmap и курсов для разработчиков
ютуб иконка
Telegram иконка
VK иконка
VK иконка
Курсы
ГлавнаяКаталог курсовFrontendBackendFullstack
Практика
КарьераПроектыPurpleПлюс
Материалы
БлогБаза знаний
Документы
Договор офертаПолитика конфиденциальностиПроверка сертификатаМиграция курсовРеферальная программа
Реквизиты
ИП Ларичев Антон АндреевичИНН 773373765379contact@purpleschool.ru

PurpleSchool © 2020 -2026 Все права защищены

  • Курсы
    • FrontendИконка стрелки
    • AI разработкаИконка стрелки
    • BackendИконка стрелки
    • DevOpsИконка стрелки
    • MobileИконка стрелки
    • ТестированиеИконка стрелки
    • Soft-skillsИконка стрелки
    • ДизайнИконка стрелки
    Иконка слояПерейти в каталог курсов
  • Бесплатно
    • Курсы
    • JavaScript Основы разработкиPython Основы PythonCSS CSS FlexboxКарта развитияВопросы для собеседований
    • База знанийИконка стрелки
    • Новостные рассылкиИконка стрелки
  • PurpleSchool — курсы программирования онлайн
    • AI для кодаНовое
    • Сообщество
    • PurpleПлюс
    • AI Собеседование
    • AI тренажёр
    • Проекты
    Главная
    Сообщество
    Как организовать схему Prisma в нескольких файлах: новая возможность в версии 5.15

    Как организовать схему Prisma в нескольких файлах: новая возможность в версии 5.15

    Аватар автора Как организовать схему Prisma в нескольких файлах: новая возможность в версии 5.15

    Дмитрий

    Иконка календаря25 июля 2024
    PrismaJavaScriptTypeScriptmiddleИконка уровня middle
    Картинка поста Как организовать схему Prisma в нескольких файлах: новая возможность в версии 5.15

    С выходом версии 5.15 Prisma ORM представила долгожданную функцию, позволяющую разделить схему базы данных на несколько файлов. Эта новая возможность значительно упрощает работу с крупными проектами и улучшает организацию кода. В этой статье мы подробно рассмотрим, как использовать эту функцию, какие преимущества она дает и как правильно структурировать ваши схемы Prisma.

    Что такое многофайловая схема Prisma?

    Многофайловая схема Prisma - это новая функция, позволяющая разделить вашу схему базы данных на несколько .prisma файлов. До этого обновления вся схема должна была находиться в одном файле schema.prisma, что могло создавать трудности при работе с большими и сложными проектами.

    Теперь вы можете организовать вашу схему в отдельные файлы, группируя связанные модели и типы вместе. Это делает код более читаемым, упрощает навигацию и уменьшает вероятность конфликтов при работе в команде.

    Как включить поддержку многофайловых схем

    Чтобы начать использовать эту новую функцию, вам нужно выполнить несколько простых шагов:

    1. Обновите prisma и @prisma/client до версии 5.15.0 или выше.

    2. Обновите расширение Prisma для Visual Studio Code до версии 5.15.0.

    3. Включите превью-функцию prismaSchemaFolder, добавив ее в поле previewFeatures внутри generator.

    Давайте рассмотрим последний шаг подробнее. В вашем основном файле схемы (обычно это schema.prisma) добавьте следующую настройку:

    generator client {
      provider        = "prisma-client-js"
      previewFeatures = ["prismaSchemaFolder"]
    }
    
    datasource db {
      provider = "postgresql"
      url      = env("DATABASE_URL")
    }
    

    В этом примере:

    • generator client определяет настройки для генерации клиента Prisma.
    • provider = "prisma-client-js" указывает, что мы используем JavaScript/TypeScript клиент.
    • previewFeatures = ["prismaSchemaFolder"] включает новую функцию многофайловых схем.
    • datasource db определяет источник данных (в данном случае PostgreSQL).
    • url = env("DATABASE_URL") указывает на переменную окружения с URL базы данных.

    Структура многофайловой схемы

    После включения функции prismaSchemaFolder, вы можете организовать вашу схему следующим образом:

    1. Создайте подкаталог schema в вашем каталоге prisma.

    2. Переместите ваш основной файл schema.prisma в этот подкаталог.

    3. Создайте дополнительные .prisma файлы в каталоге schema для различных частей вашей схемы.

    Например, вы можете создать следующую структуру:

    prisma/
      ├── schema/
      │   ├── main.prisma
      │   ├── user.prisma
      │   └── post.prisma
    

    В этой структуре:

    - main.prisma содержит основные настройки (generator и datasource).

    - user.prisma может содержать модели, связанные с пользователями.

    - post.prisma может содержать модели, связанные с постами или статьями.

    Пример использования многофайловой схемы

    Давайте рассмотрим пример, как может выглядеть разделение схемы на несколько файлов:

    В файле user.prisma:

    // user.prisma
    model User {
      id    Int     @id @default(autoincrement())
      name  String
      posts Post[]
    }
    

    В этом примере:

    • model User определяет структуру таблицы пользователей.
    • id - это уникальный идентификатор пользователя.
    • name - имя пользователя.
    • posts Post[] - связь с моделью Post, указывающая, что у пользователя может быть несколько постов.

    В файле post.prisma:

    // post.prisma
    model Post {
      id       Int     @id @default(autoincrement())
      title    String
      content  String
      authorId Int
      author   User    @relation(fields: [authorId], references: [id])
    }
    

    В этом примере:

    • model Post определяет структуру таблицы постов.
    • id - уникальный идентификатор поста.
    • title и content - заголовок и содержание поста соответственно.
    • authorId и author определяют связь с моделью User.

    Обратите внимание, что вы можете использовать модели из других файлов без необходимости их импорта. Prisma автоматически объединяет все файлы при генерации клиента.

    Преимущества использования многофайловых схем

    Разделение схемы Prisma на несколько файлов предоставляет ряд существенных преимуществ:

    1. Улучшенная организация: вы можете группировать связанные модели в отдельные файлы, что упрощает навигацию по проекту.
    2. Облегчение командной работы: уменьшается вероятность конфликтов при одновременной работе нескольких разработчиков над разными частями схемы.
    3. Повышение читаемости: меньшие по размеру файлы легче читать и понимать, особенно для новых членов команды.
    4. Упрощение поддержки: изменения в одной части схемы не затрагивают другие части, что упрощает поддержку и развитие проекта.
    5. Лучшая масштабируемость: по мере роста проекта вы можете легко добавлять новые файлы для новых доменов или функциональностей.

    Лучшие практики организации многофайловых схем

    При использовании многофайловых схем Prisma рекомендуется придерживаться следующих принципов:

    1. Организация по доменам: группируйте связанные модели в одном файле. Например, все модели, связанные с пользователями, могут находиться в user.prisma, а модели, связанные с заказами - в order.prisma.
    2. Четкие соглашения об именовании: используйте понятные и краткие имена для файлов схемы. Например, user.prisma, post.prisma, product.prisma.
    3. Основной файл схемы: сохраните один "главный" файл схемы (например, main.prisma или schema.prisma).

    Обновление рабочего процесса с Prisma CLI

    С введением многофайловых схем, некоторые команды Prisma CLI были обновлены для поддержки этой функциональности:

    • prisma generate: эта команда теперь объединяет все файлы схемы перед генерацией клиента.
    • prisma validate: проверяет правильность всех файлов схемы.
    • prisma format: форматирует все файлы схемы в каталоге schema.

    Важно отметить, что ваш рабочий процесс в целом остается прежним. Вы по-прежнему используете эти команды так же, как и раньше, просто теперь они работают со всеми файлами в каталоге schema.

    Заключение

    Новая возможность организации схемы Prisma в нескольких файлах, представленная в версии 5.15, значительно улучшает работу с крупными проектами. Она позволяет лучше структурировать код, упрощает командную работу и делает схему более понятной и управляемой.

    Иконка глаза3 570

    Постройте личный план изучения Основы React, React Router и Redux Toolkit до уровня Middle — бесплатно!

    Основы React, React Router и Redux Toolkit — часть карты развития Frontend, Mobile

    • step100+ шагов развития
    • lessons30 бесплатных лекций
    • lessons300 бонусных рублей на счет

    Бесплатные лекции

    Лучшие курсы по теме

    изображение курса

    Zustand

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Практика в студииПрактика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.8
    3 999 ₽ 6 990 ₽
    Подробнее
    изображение курса

    Next.js - с нуля

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Практика в студииПрактика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.7
    3 999 ₽ 6 990 ₽
    Подробнее
    изображение курса

    Feature-Sliced Design

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Практика в студииПрактика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.6
    3 999 ₽ 6 990 ₽
    Подробнее

    Похожие статьи

    Картинка поста Как настроить CI/CD пайплайн с нуля: полное руководство
    Иконка аватараАнтон
    Иконка календаря14 октября 2026
    CI/CDDevOpsGitHub Actions+ 2middleИконка уровня middle

    Как настроить CI/CD пайплайн с нуля: полное руководство

    CI/CD пайплайн с нуля: как собрать рабочий конвейер сборки, тестов и деплоя на примере GitHub Actions и Docker без лишней теории.

    Иконка чипа0
    Иконка глаза4
    Иконка комментариев0
    Картинка поста CLAUDE.md: как написать инструкции для Claude Code
    Иконка аватараАнтон
    Иконка календаря11 октября 2026
    AI-инструментыClaude CodeDevOps+ 1middleИконка уровня middle

    CLAUDE.md: как написать инструкции для Claude Code

    CLAUDE.md — это файл с инструкциями по проекту, который Claude Code читает в начале каждой сессии. Положите его в корень репозитория и опишите внутри, чем проект собирается, чем запускаются тесты и каких соглашений держаться в коде. После этого агент перестанет спрашивать одно и то же в каждом новом диалоге и предлагать решения, которые в вашей кодовой базе не приняты. Формат предельно простой: обычный Markdown, обязательных полей нет, заголовки любые. Дальше — где именно создавать файл и как Claude Code собирает инструкции сразу из нескольких мест, что писать внутрь, как подключать к файлу другие документы и чем CLAUDE.md отличается от AGENTS.md. Одна оговорка перед началом: Claude Code обновляется часто, набор команд и поддерживаемых файлов пополняется. Если какая-то деталь ниже ведёт себя у вас иначе, сверяйтесь с документацией той версии, которая стоит у вас.

    Иконка чипа0
    Иконка глаза191
    Иконка комментариев0
    Иконка аватараАнтон
    Иконка календаря10 октября 2026
    AI-инструментыClaude CodeDevOps+ 2middleИконка уровня middle

    Агенты в OpenCode: как создать своего агента

    Агент в OpenCode — это именованный профиль работы: своя модель, свой системный промпт и свой список разрешённых инструментов. Чтобы создать своего агента, нужно описать его отдельным markdown-файлом в папке `.opencode/agent/` внутри проекта (или в `~/.config/opencode/agent/`, если агент нужен во всех проектах) либо объявить его в блоке `agent` файла `opencode.json`. После этого агент появляется в списке доступных, и его можно вызвать прямо в сессии.

    Иконка чипа0
    Иконка глаза281
    Иконка комментариев0
    Иконка чипа+8

    Комментарии

    1
    Иконка аватара
    Герман

    25.07.2024

    Шикарно