«Prisma — это серверная библиотека, которая помогает вашему приложению читать и записывать данные в базу данных интуитивно понятным и безопасным способом».
~Prisma Site
Объектно-реляционные преобразователи (ORM) — это распространенная технология для взаимодействия с базами данных со стороны серверного приложения по сравнению с выполнением ручного SQL в строке подключения к базе данных или использованием хранимых процедур в базе данных для выполнения сложных запросов.
Во многих отношениях ORM позволяют ускорить разработку кода и избавляют от хлопот, связанных с написанием кода на нескольких языках или определенных диалектах SQL. ORM способны генерировать необходимый SQL для пользователя и, таким образом, экономить время и обеспечивать более простой и прямой интерфейс к данным.
Prisma — это интересная ORM для машинописи, которая поставляется с множеством дополнительных функций, таких как приложение-студия для просмотра данных и платформа, которая даже помогает вам настроить бесплатную базу данных в облаке. Все основные действия Prisma выполняются через клиентский пакет Prisma для Typescript, показанный ниже.
Найти записи
Обычное действие, поиск записей в базе данных довольно простое. Сначала нам нужно создать файл схемы Prisma, для которого требуется источник данных, генератор (по сути, клиентский курсор) и модели (представления таблиц в базе данных). Затем схему можно изучить с помощью Prisma, используя формат «prisma.‹название модели›.‹действие›».
Навигация по отношениям
Нам часто нужно находить данные на основе их связи с другими данными. В приведенном ниже примере мы ищем категории сообщений пользователей на основе соответствующих условий для обоих. Здесь пригодится система схем Prisma, поскольку схема знает весь граф отношений моделей и может интерпретировать запрос с помощью простого для понимания синтаксиса.
Совокупные результаты
Prisma предоставляет несколько различных инструментов для агрегирования. .count()
, .aggregate()
и .groupby()
. Операции, поддерживаемые .aggregate()
, включают «среднее, сумма, минимум и максимум».
Создать записи
Создание новых записей с помощью Prisma — это простая задача, которая заключается в предоставлении функции .create()
таблицы с объектом json с соответствующими данными. Также возможно создать несколько записей одновременно, как в приведенном ниже примере, где два сообщения создаются одним и тем же вызовом функции. Это довольно интересная система, поскольку простота в значительной степени определяется системой схемы Prisma, которая определена для всего экземпляра Prisma. Из-за этого Prisma уже знает, что пользовательская модель также связана с пост-моделями, которые находятся в разных таблицах.
Необработанные запросы
Это действительно полезная функция для нас в Interject Data Systems, потому что мы много работаем с пользовательскими настройками базы данных SQL, а также часто имеем дело с хранимыми процедурами.
Полнотекстовый поиск
Недавней функцией Prisma является возможность выполнять полнотекстовый поиск, что в основном означает «просмотр всего строкового значения для условия». Это выводит операторы where на совершенно новый уровень с такими вариантами запросов, как «найти всех пользователей с музыкой и искусством в их биографии». В таком запросе вы не можете просто выполнить сопоставление, потому что разные пользователи могут включать искусство и музыку в биографию, но в разных местах в своем описании.
Упрощенные миграции
Prisma фокусируется на создании автоматических, детерминированных и настраиваемых миграций. Это помогает гарантировать, что вы всегда точно знаете, что будет создано, и сможете указать, что вы хотите, при этом экономя время на аспекте обновлений, которые обычно довольно утомительны и легко испортить, если выполнять их вручную.
Призма Студия
Prisma Studio — это приложение, которое позволяет вам исследовать данные, доступ к которым осуществляется через Prisma. Это приложение дает вам возможность выполнять операции CRUD для подключения к данным, к которому обращается схема Prisma, а также фильтровать, сортировать и вводить данные в базу данных данных. Для этого приложения также есть темный режим.