Ответ
Prisma — это ORM (Object-Relational Mapping) для работы с базами данных. Позволяет взаимодействовать с БД через TypeScript/JavaScript, генерируя типы на основе схемы.
Особенности:
- Поддерживает PostgreSQL, MySQL, SQLite, MongoDB
- Автогенерация типов на основе схемы
- Миграции встроены
- Интуитивный API для запросов
Пример схемы:
model User {
id Int @id @default(autoincrement())
name String
email String @unique
}
Пример запроса:
const users = await prisma.user.findMany({
where: { name: 'Alice' }
});
Используется в Fullstack-приложениях, особенно с Next.js.
Ответ 18+ 🔞
А, Prisma, говоришь? Ну это ж, блядь, такая штука, чтобы с базой данных не ебаться как ломовая лошадь вручную, понимаешь? ORM называется, Object-Relational Mapping, если по-умному. Короче, переводчик между твоим TypeScript-кодом и этой, блядь, табличной хуйней в базе.
Что она умеет, эта мартышлюшка:
- Поддерживает все эти ваши PostgreSQL, MySQL, SQLite и даже MongoDB, ёпта. Почти как универсальный ключ, только для баз.
- Главный прикол — она типы сама генерирует, на основе твоей схемы! То есть ты описал, как там таблица выглядит, а она тебе — раз! — и готовые TypeScript-интерфейсы, чтобы ты не опечатался и не пытался
emailв полеageзапихнуть. Удобно, блядь, волнение ебать. - Миграции, эти вечные боли в сраке, у неё встроены. Сказал «мигрируй» — она и мигрировала. Красота.
- API у неё такой, что даже я, после трёх бутылок, могу запрос написать. Интуитивный, сука.
Вот смотри, как схему описываешь, просто пиздец:
model User {
id Int @id @default(autoincrement()) // Это типа главный ключ, сам растёт
name String // Имя, тут всё ясно
email String @unique // Почта, и чтобы одна на весь район, а то пидары налетят
}
Написал это, и Prisma тебе уже намекает: «Чувак, у тебя теперь есть модель User, работай с ней».
А вот как потом с этой моделью общаться, запрос простейший:
const users = await prisma.user.findMany({
where: { name: 'Alice' } // Найди-ка мне всех этих Алис, блядь
});
И всё! Никаких этих SELECT * FROM users WHERE name = 'Alice' писать не надо. ORM сама, хитрая жопа, это сгенерирует и выполнит. А в users у тебя уже будут строго типированные объекты, потому что Prisma помнит, что у User есть id, name и email. Никаких сюрпризов.
Особенно её обожают в этих Fullstack-приложениях, которые на Next.js делают. Там вообще, блядь, рай наступает: описал схему — и на фронте, и на бэке типы одни и те же. Мечта, а не инструмент, в рот меня чих-пых.