Зміст

Технологія

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 ·

Контакти

Є ідея? Втілимо її разом