Содержание

Технология

Prisma

Prisma — ORM с открытым исходным кодом для Node.js и TypeScript: модель данных описывается в одной схеме, а Prisma генерирует по ней типизированный клиент и миграции. Я использую её с PostgreSQL в своих продуктах и на этом сайте

Тип
Технология
Официальный сайт
prisma.io
В моей работе
Проекты 1 · Инструменты 1
Опубликовано

Что такое Prisma и как я использую её с PostgreSQL?

С Prisma схема базы данных и код на TypeScript не могут разойтись: переименованная колонка ломает сборку, а не продакшен-сервер

Основные факты

Тип
ORM с открытым исходным кодом для Node.js и TypeScript ·
Базы данных
PostgreSQL, MySQL, SQLite и другие ·

Как я применяю Prisma

  • Одна схема на весь продукт. Пользователи, матчи, контент и платежи моей мультиплеерной платформы и этого сайта описаны в одной схеме Prisma на PostgreSQL; типизированный клиент следует за каждым изменением. Кейс платформы.
  • Миграции, которые можно прочитать. Каждое изменение — SQL-миграция в репозитории. Перед релизом я применяю её к одноразовой локальной базе и сравниваю результат со схемой.
  • Релизы с путём назад. Я предпочитаю миграции, которые только добавляют таблицы и колонки: если новый релиз придётся откатить, предыдущий продолжит работать. В продакшене они применяются после зашифрованной резервной копии.

Когда я выбираю Prisma и её ограничения

Prisma подходит продуктам, где большинство запросов — обычные чтение и запись, а команда хочет типы везде. Она убирает целый класс ошибок и делает миграции частью код-ревью.

Для тяжёлых отчётов и нестандартных запросов я пишу SQL напрямую — Prisma позволяет это в том же проекте. Разрушительное изменение, например удаление таблицы, всё равно требует плана и резервной копии: ни один инструмент сам по себе не делает его безопасным.

Работает вместе с

Источники

  1. Prisma Documentation — Prisma ·

Контакты

Есть идея? Давайте воплотим её