Коротко: Prisma 7.8.0 не робить гучного шоу, але підкручує речі, які болять у реальних командах: керування queryPlanCacheMaxSize, виправлення для PostgreSQL JSON-фільтрів, міграцій і introspection. Це саме той реліз, який легко проігнорувати, а потім здивуватися, чому на проді росте пам’ять або чому один edge case у PostgreSQL знову поводиться як вперта кішка.

Проблема / контекст

У Prisma більшість проблем не виглядають драматично на першому екрані. Зазвичай усе починається тихо:

У Prisma 7.8.0 саме такі історії й зачепили. Реліз додав один новий важіль для продуктивності та закрив кілька багів у PostgreSQL-шляху, які могли бути дрібними на папері, але дуже неприємними в живому застосунку.

Що змінилося у Prisma 7.8.0

1. З’явився ручний контроль над query plan cache

У Prisma Client додали queryPlanCacheMaxSize. Це дає змогу керувати розміром кешу планів виконання запитів.

Що це означає на практиці:

Це не кнопка «зробити швидше автоматично». Це інструмент для команд, які вже дивляться на профіль навантаження, а не на інтуїцію з кавою.

2. PostgreSQL-фільтри по JSON стали менш крихкими

Prisma 7.8.0 виправляє кілька багів саме для PostgreSQL:

Людською мовою: якщо ваш бекенд активно працює з JSON, фільтрами і enum-ами, це реліз із дуже конкретною цінністю.

3. Міграції та introspection стали спокійнішими

Ще кілька важливих фіксів:

Це саме ті баги, які не видно в демо, але дуже добре видно в поганому релізному вечорі.

Чому це важливо

Якщо у вас Prisma + PostgreSQL, цей реліз б’є в три місця одночасно:

  1. Продуктивність queryPlanCacheMaxSize дає реальний контроль над тим, що Prisma тримає в пам’яті.

  2. Коректність запитів JSON-фільтри, enum-значення і параметри тепер поводяться передбачуваніше.

  3. Безпечні міграції CREATE INDEX CONCURRENTLY, shadow database і introspection — це ті штуки, які краще перевірити зараз, а не під час нічного hotfix.

Якщо коротко: Prisma 7.8.0 не просто «оновлює версію». Воно знімає частину дрібних, але болючих ризиків у PostgreSQL-проєктах.

Як до цього підійти без сюрпризів

1. Спочатку знайдіть, де Prisma взагалі впливає на прод

Перед оновленням подивіться:

Якщо ви не знаєте, де саме Prisma найважливіша, оновлення легко провести «нібито успішно» і пропустити найризиковіші місця.

2. Оновіть Prisma окремою гілкою

Не змішуйте це з паралельним рефакторингом schema, новими моделями і косметикою в тестах. Окремий diff = окремий розум.

Мінімальний порядок:

npx prisma -v
npx prisma generate
npx prisma migrate dev
npx prisma db pull

Потім прогнати ваші unit, integration і smoke-тести на PostgreSQL-даних, а не тільки на моках.

3. Тюнінг cache робіть тільки після вимірювання

Якщо хочете спробувати queryPlanCacheMaxSize, почніть із поточної дефолтної поведінки і порівняйте з кількома контрольованими значеннями на staging.

Корисно дивитися на:

Якщо запити майже завжди однакові, кеш зазвичай корисний. Якщо запити постійно різні, кеш може не дати відчутного бонусу.

4. Проганяйте PostgreSQL-edge cases окремо

Зробіть окремий smoke-набір:

Це не параноя. Це дешевше, ніж ловити одну неправильну умову в проді.

5. Якщо є доступ до живого навантаження — порівняйте до і після

Після апгрейду дивіться не тільки на «build green». Дивіться на:

Що не варто робити

Антипатерн 1. Увімкнути новий cache-важіль навмання

Якщо поставити значення без метрики, можна або нічого не виграти, або просто посунути проблему з CPU в пам’ять.

Антипатерн 2. Проковтнути реліз як «це ж тільки фікси»

Саме фікси часто і рятують прод. Тут вони дуже практичні: JSON, enum-значення, concurrent index creation, introspection.

Антипатерн 3. Не перевірити міграції окремо

migrate dev і db pull — не декоративні команди. Якщо ви їх використовуєте, їх треба реально прогнати після апгрейду.

Антипатерн 4. Змішати апгрейд Prisma зі schema-революцією

Коли в одному PR і нова версія, і нові моделі, і нові індекси, і нові тести, потім уже ніхто не знає, що саме зламало реліз.

Висновок / план дій

Prisma 7.8.0 — хороший момент, щоб зробити дві речі:

  1. підняти версію без зайвого героїзму;
  2. чесно перевірити, чи ваш PostgreSQL-кейс не сидів на одному з виправлених edge cases.

Найрозумніший шлях такий:

Коротко: не крутити ручку, поки не зрозуміли, що саме вона керує.

Офіційне джерело: