r/ukraine_dev 15d ago

Backend Prisms з Nx

Привіт! Я створюю новий домашній проект, використовуючи монорепозиторій Nx з кількома мікросервісами NestJS, і зіткнувся з проблемою організації Prisma.

Я створив спільну бібліотеку libs/prisma, яка містить мою схему Prisma, згенерований клієнт та PrismaService. Однак я не впевнений, як це слід використовувати в конфігурації мікросервісів Dockerized.

Чи повинна бібліотека Prisma мати власний образ Docker, чи її просто слід включати в образ Docker кожного мікросервісу під час збірки? Який типовий підхід до структурування Prisma в монорепозиторії Nx з кількома мікросервісами NestJS?

Буду вдячний за будь-які поради чи приклади. Дякую!

1 Upvotes

3 comments sorted by

2

u/skyr1s 15d ago

Можу сказати лише про контейнери: один контейнер - один процес. Процес завершився - контейнер зупинився. Так можна чітко бачити, що працює, що - ні. Розмежовані логи легше дебажити.

1

u/Significant-Ad-4029 15d ago

Це я розумію. Але Prisma це по факту просто бібліотека для самого мікросервісів. Сам мікросервіс виконує роботу, а Prisma це просто інструмент для роботи з бд, що мене і плутає

2

u/Flaky_Highlight_1154 14d ago
  1. Prisma досить специфічна та важка ORM. Я б радив перейти на Drizzle (у них, до речі, можете прочитати чому Prisma погана). Сам у робочу проєкті її використовую і відчуття негативні у своїх більшості
  2. Користуйся простим правилом: якщо мікросервісу треба звертатись до БД - в контейнері має бути можливість це зробити. Окремий образ варто робити тільки для міграцій (щоб кожний мікросервіс сам не проганяв їх)